From 944e24a31a9b3b3c4494853a8e2a2d589f65519f Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Tue, 29 May 2018 09:42:16 +0000 Subject: [PATCH] [Ada] Plug small hole in -gnatR output The -gnatR switch outputs representation information for locally-defined types but it was skipping those defined in blocks without label, unlike those defined in named blocks. This change plugs this small hole. The following procedure: procedure P is begin declare type R is record I : Integer; end record; begin null; end; end; must now generate the following output with -gnatR: Representation information for unit P (body) -------------------------------------------- for B_1.R'Size use 32; for B_1.R'Alignment use 4; for B_1.R use record I at 0 range 0 .. 31; end record; 2018-05-29 Eric Botcazou gcc/ada/ * repinfo.adb (List_Entities): Also recurse into blocks without label. From-SVN: r260884 --- gcc/ada/ChangeLog | 4 ++++ gcc/ada/repinfo.adb | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index fecd0f16b48..0d478b01bb1 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,7 @@ +2018-05-29 Eric Botcazou + + * repinfo.adb (List_Entities): Also recurse into blocks without label. + 2018-05-29 Ed Schonberg * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for diff --git a/gcc/ada/repinfo.adb b/gcc/ada/repinfo.adb index 1a85c8ff90e..a88a3f248a3 100644 --- a/gcc/ada/repinfo.adb +++ b/gcc/ada/repinfo.adb @@ -408,7 +408,12 @@ package body Repinfo is -- info for the full view). If debug flag A is set, then all -- entities are listed - if (Comes_From_Source (E) + if ((Comes_From_Source (E) + or else (Ekind (E) = E_Block + and then + Nkind (Parent (E)) = N_Implicit_Label_Declaration + and then + Comes_From_Source (Label_Construct (Parent (E))))) and then not Is_Incomplete_Or_Private_Type (E) and then not (Ekind (E) = E_Constant and then Present (Full_View (E))))