Procházet zdrojové kódy

+ Added trecorddef.buildderefimpl, necessary since advanced records have been implemented. Fixes compiler crash on webtbs/tw18688.pp on x86_64-win64.

git-svn-id: trunk@26250 -
sergei před 11 roky
rodič
revize
258e8c58a4
2 změnil soubory, kde provedl 11 přidání a 0 odebrání
  1. 9 0
      compiler/symdef.pas
  2. 2 0
      compiler/symsym.pas

+ 9 - 0
compiler/symdef.pas

@@ -283,6 +283,7 @@ interface
           function getcopy : tstoreddef;override;
           procedure ppuwrite(ppufile:tcompilerppufile);override;
           procedure buildderef;override;
+          procedure buildderefimpl;override;
           procedure deref;override;
           function  size:asizeint;override;
           function  alignment : shortint;override;
@@ -3860,6 +3861,14 @@ implementation
       end;
 
 
+    procedure trecorddef.buildderefimpl;
+      begin
+         inherited buildderefimpl;
+         if not (df_copied_def in defoptions) then
+           tstoredsymtable(symtable).buildderefimpl;
+      end;
+
+
     procedure trecorddef.deref;
       begin
          inherited deref;

+ 2 - 0
compiler/symsym.pas

@@ -683,6 +683,8 @@ implementation
          d : tderef;
       begin
          inherited ppuwrite(ppufile);
+         if fprocdefdereflist=nil then
+           internalerror(2013121801);
          ppufile.putword(FProcdefDerefList.Count);
          for i:=0 to FProcdefDerefList.Count-1 do
            begin