Browse Source

* 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 years ago
parent
commit
3ea78f53ad
1 changed files with 4 additions and 2 deletions
  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 }