Jelajahi Sumber

* add type symbol names to -vp output (patch by Adriaan van Os, mantis
#15737)

git-svn-id: trunk@14903 -

Jonas Maebe 15 tahun lalu
induk
melakukan
1f4d7d6057
3 mengubah file dengan 16 tambahan dan 5 penghapusan
  1. 6 4
      compiler/nbas.pas
  2. 1 1
      compiler/node.pas
  3. 9 0
      compiler/symtype.pas

+ 6 - 4
compiler/nbas.pas

@@ -885,10 +885,10 @@ implementation
     procedure ttempcreatenode.printnodedata(var t:text);
       begin
         inherited printnodedata(t);
-        writeln(t,printnodeindention,'size = ',size,', temptypedef = "',tempinfo^.typedef.GetTypeName,'", tempinfo = $',hexstr(ptrint(tempinfo),sizeof(ptrint)*2));
+        writeln(t,printnodeindention,'size = ',size,', temptypedef = ',tempinfo^.typedef.typesymbolprettyname,' = "',
+          tempinfo^.typedef.GetTypeName,'", tempinfo = $',hexstr(ptrint(tempinfo),sizeof(ptrint)*2));
       end;
 
-
 {*****************************************************************************
                              TEMPREFNODE
 *****************************************************************************}
@@ -1022,7 +1022,8 @@ implementation
     procedure ttemprefnode.printnodedata(var t:text);
       begin
         inherited printnodedata(t);
-        writeln(t,printnodeindention,'temptypedef = "',tempinfo^.typedef.GetTypeName,'", tempinfo = $',hexstr(ptrint(tempinfo),sizeof(ptrint)*2));
+        writeln(t,printnodeindention,'temptypedef = ',tempinfo^.typedef.typesymbolprettyname,' = "',
+          tempinfo^.typedef.GetTypeName,'", tempinfo = $',hexstr(ptrint(tempinfo),sizeof(ptrint)*2));
       end;
 
 
@@ -1136,7 +1137,8 @@ implementation
     procedure ttempdeletenode.printnodedata(var t:text);
       begin
         inherited printnodedata(t);
-        writeln(t,printnodeindention,'release_to_normal: ',release_to_normal,', temptypedef = "',tempinfo^.typedef.GetTypeName,'", tempinfo = $',hexstr(ptrint(tempinfo),sizeof(ptrint)*2));
+        writeln(t,printnodeindention,'release_to_normal: ',release_to_normal,', temptypedef = ',tempinfo^.typedef.typesymbolprettyname,' = "',
+          tempinfo^.typedef.GetTypeName,'", tempinfo = $',hexstr(ptrint(tempinfo),sizeof(ptrint)*2));
       end;
 
 begin

+ 1 - 1
compiler/node.pas

@@ -843,7 +843,7 @@ implementation
       begin
         write(t,nodetype2str[nodetype]);
         if assigned(resultdef) then
-          write(t,', resultdef = "',resultdef.GetTypeName,'"')
+          write(t,', resultdef = ',resultdef.typesymbolprettyname,' = "',resultdef.GetTypeName,'"')
         else
           write(t,', resultdef = <nil>');
         write(t,', pos = (',fileinfo.line,',',fileinfo.column,')',

+ 9 - 0
compiler/symtype.pas

@@ -69,6 +69,7 @@ interface
          procedure derefimpl;virtual;abstract;
          function  typename:string;
          function  GetTypeName:string;virtual;
+         function  typesymbolprettyname:string;virtual;
          function  mangledparaname:string;
          function  getmangledparaname:string;virtual;
          function  rtti_mangledname(rt:trttitype):string;virtual;abstract;
@@ -270,6 +271,14 @@ implementation
       end;
 
 
+    function tdef.typesymbolprettyname:string;
+      begin
+        if assigned(typesym) then
+          result:=typesym.prettyname
+        else
+          result:='<no type symbol>'
+      end;
+
     function tdef.mangledparaname:string;
       begin
         if assigned(typesym) then