Pārlūkot izejas kodu

* as it seems that UnitImportSyms stores symbols that are already freed add an additional check to tderef.build() for tdef (in addition to tsym) to find code that triggers such cases more easily

git-svn-id: trunk@34408 -
svenbarth 9 gadi atpakaļ
vecāks
revīzija
3ea78f53ad
1 mainītis faili ar 4 papildinājumiem un 2 dzēšanām
  1. 4 2
      compiler/symtype.pas

+ 4 - 2
compiler/symtype.pas

@@ -751,7 +751,7 @@ implementation
                  tsym(s).register_sym;
                st:=FindUnitSymtable(tsym(s).owner)
              end
-           else
+           else if s is tdef then
              begin
                { same as above }
                if tdef(s).defid=defid_registered_nost then
@@ -759,7 +759,9 @@ implementation
                if not tdef(s).registered then
                  tdef(s).register_def;
                st:=FindUnitSymtable(tdef(s).owner);
-             end;
+             end
+           else
+             internalerror(2016090201);
            if not st.iscurrentunit then
              begin
                { register that the unit is needed for resolving }