Selaa lähdekoodia

+ some missing docompare() overrides

git-svn-id: trunk@11937 -
Jonas Maebe 17 vuotta sitten
vanhempi
commit
19f8aede99
2 muutettua tiedostoa jossa 27 lisäystä ja 2 poistoa
  1. 9 0
      compiler/ncnv.pas
  2. 18 2
      compiler/nmem.pas

+ 9 - 0
compiler/ncnv.pas

@@ -192,6 +192,7 @@ interface
           function pass_1 : tnode;override;
           function pass_typecheck:tnode;override;
           function dogetcopy: tnode;override;
+          function docompare(p: tnode): boolean; override;
           destructor destroy; override;
           call: tnode;
        end;
@@ -3357,6 +3358,14 @@ implementation
       end;
 
 
+    function tasnode.docompare(p: tnode): boolean;
+      begin
+        result:=
+          inherited docompare(p) and
+          tasnode(p).call.isequal(call);
+      end;
+
+
     function tasnode.pass_1 : tnode;
       var
         procname: string;

+ 18 - 2
compiler/nmem.pas

@@ -47,6 +47,7 @@ interface
           procedure derefimpl;override;
           function pass_1 : tnode;override;
           function pass_typecheck:tnode;override;
+          function docompare(p: tnode): boolean; override;
           function dogetcopy : tnode;override;
        end;
        tloadparentfpnodeclass = class of tloadparentfpnode;
@@ -62,6 +63,7 @@ interface
           procedure mark_write;override;
           procedure buildderefimpl;override;
           procedure derefimpl;override;
+          function docompare(p: tnode): boolean; override;
           function dogetcopy : tnode;override;
           function pass_1 : tnode;override;
           function pass_typecheck:tnode;override;
@@ -215,6 +217,14 @@ implementation
       end;
 
 
+    function tloadparentfpnode.docompare(p: tnode): boolean;
+      begin
+        result:=
+          inherited docompare(p) and
+          (tloadparentfpnode(p).parentpd=parentpd);
+      end;
+
+
     function tloadparentfpnode.dogetcopy : tnode;
       var
          p : tloadparentfpnode;
@@ -323,11 +333,17 @@ implementation
       end;
 
 
-    function taddrnode.dogetcopy : tnode;
+    function taddrnode.docompare(p: tnode): boolean;
+      begin
+        result:=
+          inherited docompare(p) and
+          (taddrnode(p).getprocvardef=getprocvardef);
+      end;
 
+
+    function taddrnode.dogetcopy : tnode;
       var
          p : taddrnode;
-
       begin
          p:=taddrnode(inherited dogetcopy);
          p.getprocvardef:=getprocvardef;