Explorar el Código

* more informative printnode* output for temp-related nodes

git-svn-id: trunk@702 -
Jonas Maebe hace 20 años
padre
commit
255855b5d9
Se han modificado 1 ficheros con 18 adiciones y 1 borrados
  1. 18 1
      compiler/nbas.pas

+ 18 - 1
compiler/nbas.pas

@@ -143,6 +143,7 @@ interface
           function det_resulttype : tnode; override;
           procedure mark_write;override;
           function docompare(p: tnode): boolean; override;
+          procedure printnodedata(var t:text);override;
          protected
           tempinfo: ptempinfo;
           offset : longint;
@@ -165,6 +166,7 @@ interface
           function det_resulttype: tnode; override;
           function docompare(p: tnode): boolean; override;
           destructor destroy; override;
+          procedure printnodedata(var t:text);override;
          protected
           tempinfo: ptempinfo;
           release_to_normal : boolean;
@@ -782,7 +784,7 @@ implementation
     procedure ttempcreatenode.printnodedata(var t:text);
       begin
         inherited printnodedata(t);
-        writeln(t,printnodeindention,'size = ',size);
+        writeln(t,printnodeindention,'size = ',size,', temprestype = "',tempinfo^.restype.def.gettypename,'", tempinfo = $',hexstr(ptruint(tempinfo),sizeof(ptruint)*2));
       end;
 
 
@@ -832,6 +834,9 @@ implementation
             n.tempinfo := tempinfo;
           end;
 
+        if not assigned(n.tempinfo) then
+          internalerror(2005071901);
+
         result := n;
       end;
 
@@ -910,6 +915,12 @@ implementation
       include(flags,nf_write);
     end;
 
+    procedure ttemprefnode.printnodedata(var t:text);
+      begin
+        inherited printnodedata(t);
+        writeln(t,printnodeindention,'temprestype = "',tempinfo^.restype.def.gettypename,'", tempinfo = $',hexstr(ptruint(tempinfo),sizeof(ptruint)*2));
+      end;
+
 
 {*****************************************************************************
                              TEMPDELETENODE
@@ -1013,6 +1024,12 @@ implementation
         dispose(tempinfo);
       end;
 
+    procedure ttempdeletenode.printnodedata(var t:text);
+      begin
+        inherited printnodedata(t);
+        writeln(t,printnodeindention,'release_to_normal: ',release_to_normal,', temprestype = "',tempinfo^.restype.def.gettypename,'", tempinfo = $',hexstr(ptruint(tempinfo),sizeof(ptruint)*2));
+      end;
+
 begin
    cnothingnode:=tnothingnode;
    cerrornode:=terrornode;