Explorar el Código

* fix cycling by correctly handling the case that the global symtable of a program file is Nil
* also check the local symtable in that case (a program does not result in a PPU, but we need the imported symbols nevertheless when linking to a package)

git-svn-id: trunk@34414 -

svenbarth hace 9 años
padre
commit
cb27889dea
Se han modificado 1 ficheros con 7 adiciones y 1 borrados
  1. 7 1
      compiler/symtable.pas

+ 7 - 1
compiler/symtable.pas

@@ -2770,7 +2770,13 @@ implementation
                inc(current_module.unitmap[tglobalsymtable(owner).moduleid].refs);
                { Note: don't check the symtable directly as owner might be
                        a specialize symtable which is a globalsymtable as well }
-               if current_module.globalsymtable.moduleid<>owner.moduleid then
+               if (
+                     assigned(current_module.globalsymtable) and
+                     (current_module.globalsymtable.moduleid<>owner.moduleid)
+                  ) or (
+                     assigned(current_module.localsymtable) and
+                     (current_module.localsymtable.moduleid<>owner.moduleid)
+                  ) then
                  { symbol is imported from another unit }
                  current_module.addimportedsym(sym);
              end;