Bläddra i källkod

* 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 9 år sedan
förälder
incheckning
cb27889dea
1 ändrade filer med 7 tillägg och 1 borttagningar
  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;