Browse Source

+ introduced taddrnodeflags (empty for now)

git-svn-id: trunk@38667 -
nickysn 7 years ago
parent
commit
539d4cb68a
2 changed files with 15 additions and 2 deletions
  1. 14 1
      compiler/nmem.pas
  2. 1 1
      compiler/ppu.pas

+ 14 - 1
compiler/nmem.pas

@@ -68,9 +68,17 @@ interface
        end;
        end;
        tloadparentfpnodeclass = class of tloadparentfpnode;
        tloadparentfpnodeclass = class of tloadparentfpnode;
 
 
+       taddrnodeflag = (
+          anf_dummyflag  { todo: remove this, when the first real addrnode flag
+                           is added (this is just a dummy element, because the
+                           enum cannot be empty) }
+       );
+       taddrnodeflags = set of taddrnodeflag;
+
        taddrnode = class(tunarynode)
        taddrnode = class(tunarynode)
           getprocvardef : tprocvardef;
           getprocvardef : tprocvardef;
           getprocvardefderef : tderef;
           getprocvardefderef : tderef;
+          addrnodeflags : taddrnodeflags;
           constructor create(l : tnode);virtual;
           constructor create(l : tnode);virtual;
           constructor create_internal(l : tnode); virtual;
           constructor create_internal(l : tnode); virtual;
           constructor create_internal_nomark(l : tnode); virtual;
           constructor create_internal_nomark(l : tnode); virtual;
@@ -412,6 +420,7 @@ implementation
       begin
       begin
          inherited create(addrn,l);
          inherited create(addrn,l);
          getprocvardef:=nil;
          getprocvardef:=nil;
+         addrnodeflags:=[];
          mark_read_written := true;
          mark_read_written := true;
       end;
       end;
 
 
@@ -434,6 +443,7 @@ implementation
       begin
       begin
         inherited ppuload(t,ppufile);
         inherited ppuload(t,ppufile);
         ppufile.getderef(getprocvardefderef);
         ppufile.getderef(getprocvardefderef);
+        ppufile.getsmallset(addrnodeflags);
       end;
       end;
 
 
 
 
@@ -441,6 +451,7 @@ implementation
       begin
       begin
         inherited ppuwrite(ppufile);
         inherited ppuwrite(ppufile);
         ppufile.putderef(getprocvardefderef);
         ppufile.putderef(getprocvardefderef);
+        ppufile.putsmallset(addrnodeflags);
       end;
       end;
 
 
     procedure Taddrnode.mark_write;
     procedure Taddrnode.mark_write;
@@ -468,7 +479,8 @@ implementation
       begin
       begin
         result:=
         result:=
           inherited docompare(p) and
           inherited docompare(p) and
-          (taddrnode(p).getprocvardef=getprocvardef);
+          (taddrnode(p).getprocvardef=getprocvardef) and
+          (taddrnode(p).addrnodeflags=addrnodeflags);
       end;
       end;
 
 
 
 
@@ -478,6 +490,7 @@ implementation
       begin
       begin
          p:=taddrnode(inherited dogetcopy);
          p:=taddrnode(inherited dogetcopy);
          p.getprocvardef:=getprocvardef;
          p.getprocvardef:=getprocvardef;
+         p.addrnodeflags:=addrnodeflags;
          dogetcopy:=p;
          dogetcopy:=p;
       end;
       end;
 
 

+ 1 - 1
compiler/ppu.pas

@@ -43,7 +43,7 @@ type
 {$endif Test_Double_checksum}
 {$endif Test_Double_checksum}
 
 
 const
 const
-  CurrentPPUVersion = 199;
+  CurrentPPUVersion = 200;
 
 
 { unit flags }
 { unit flags }
   uf_init                = $000001; { unit has initialization section }
   uf_init                = $000001; { unit has initialization section }