public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Ada] Fix irregular output with -gnatRm
@ 2018-05-29  9:49 Pierre-Marie de Rodat
  0 siblings, 0 replies; only message in thread
From: Pierre-Marie de Rodat @ 2018-05-29  9:49 UTC (permalink / raw)
  To: gcc-patches; +Cc: Eric Botcazou

[-- Attachment #1: Type: text/plain, Size: 1921 bytes --]

The information displayed by -gnatRm was using slightly different naming
and formatting conventions than the rest of the -gnatR information with
no justification, so this adjusts it for the sake of consistency.

For the following package:

package P is

  function F (I : Integer) return Integer;

  type Rec is limited record
    I : Integer;
  end record;

  procedure P1 (R : Rec; I : out Integer);

  procedure P2 (R : Rec; I : out Integer);
  pragma Linker_Section (P2, ".my_section");

  package Inner is

    procedure P3;

  end Inner;

end P;

package body P is

  function F (I : Integer) return Integer is
  begin
    return I;
  end;

  procedure P1 (R : Rec; I : out Integer) is
  begin
    I := R.I;
  end;

  procedure P2 (R : Rec; I : out Integer) is
  begin
    I := R.I;
  end;

  package body Inner is

     procedure P3 is
     begin
       null;
     end;

  end Inner;

end P;

the output of -gnatRm must be:

Representation information for unit P (body)
--------------------------------------------

Representation information for unit P (spec)
--------------------------------------------

function F declared at p7.ads:3:12
convention : Ada
   I : passed by copy
returns by copy

for Rec'Size use 32;
for Rec'Alignment use 4;
for Rec use record
   I at 0 range  0 .. 31;
end record;

procedure P1 declared at p7.ads:9:13
convention : Ada
   R : passed by reference
   I : passed by copy

procedure P2 declared at p7.ads:11:13
convention : Ada
   R : passed by reference
   I : passed by copy
pragma Linker_Section (P2, ".my_section");

procedure Inner.P3 declared at p7.ads:16:15
convention : Ada

Tested on x86_64-pc-linux-gnu, committed on trunk

2018-05-29  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* repinfo.adb (List_Entities): Do not list the Linker_Section for
	subprograms here...
	(List_Mechanisms): ...but here instead.  Use consistent name output
	and formatting conventions.

[-- Attachment #2: patch.diff --]
[-- Type: text/x-diff, Size: 1740 bytes --]

--- gcc/ada/repinfo.adb
+++ gcc/ada/repinfo.adb
@@ -393,8 +393,6 @@ package body Repinfo is
               or else Debug_Flag_AA
             then
                if Is_Subprogram (E) then
-                  List_Linker_Section (E);
-
                   if List_Representation_Info_Mechanisms then
                      List_Mechanisms (E);
                   end if;
@@ -746,13 +744,12 @@ package body Repinfo is
             raise Program_Error;
       end case;
 
-      Get_Unqualified_Decoded_Name_String (Chars (Ent));
-      Write_Str (Name_Buffer (1 .. Name_Len));
+      List_Name (Ent);
       Write_Str (" declared at ");
       Write_Location (Sloc (Ent));
       Write_Eol;
 
-      Write_Str ("  convention : ");
+      Write_Str ("convention : ");
 
       case Convention (Ent) is
          when Convention_Ada =>
@@ -814,12 +811,13 @@ package body Repinfo is
       Form := First_Formal (Ent);
       while Present (Form) loop
          Get_Unqualified_Decoded_Name_String (Chars (Form));
+         Set_Casing (Unit_Casing);
          while Name_Len <= Plen loop
             Name_Len := Name_Len + 1;
             Name_Buffer (Name_Len) := ' ';
          end loop;
 
-         Write_Str ("  ");
+         Write_Str ("   ");
          Write_Str (Name_Buffer (1 .. Plen + 1));
          Write_Str (": passed by ");
 
@@ -829,10 +827,14 @@ package body Repinfo is
       end loop;
 
       if Etype (Ent) /= Standard_Void_Type then
-         Write_Str ("  returns by ");
+         Write_Str ("returns by ");
          Write_Mechanism (Mechanism (Ent));
          Write_Eol;
       end if;
+
+      if not Is_Entry (Ent) then
+         List_Linker_Section (Ent);
+      end if;
    end List_Mechanisms;
 
    ---------------


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-05-29  9:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-29  9:49 [Ada] Fix irregular output with -gnatRm Pierre-Marie de Rodat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).