From: Eric Botcazou Date: Tue, 29 May 2018 09:29:28 +0000 (+0000) Subject: [Ada] Fix irregular output with -gnatRm X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=28cfa2697563a6d91c04cc47ad75a99aa074e930;p=gcc.git [Ada] Fix irregular output with -gnatRm 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 2018-05-29 Eric Botcazou 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. From-SVN: r260861 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index b0bf034dee0..809d468ebb7 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,10 @@ +2018-05-29 Eric Botcazou + + * 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. + 2018-05-29 Bob Duff * lib-writ.adb (Write_ALI): Cleanup: avoid use of global var; call new diff --git a/gcc/ada/repinfo.adb b/gcc/ada/repinfo.adb index d19ab0f7233..3b79aa139db 100644 --- a/gcc/ada/repinfo.adb +++ b/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; ---------------