[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  <ebotcazou@adacore.com>

gcc/ada/

	* repinfo.adb (List_Entities): Also recurse into blocks without label.

From-SVN: r260884
This commit is contained in:
Eric Botcazou 2018-05-29 09:42:16 +00:00 committed by Pierre-Marie de Rodat
parent 3747db827d
commit 944e24a31a
2 changed files with 10 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2018-05-29 Eric Botcazou <ebotcazou@adacore.com>
* repinfo.adb (List_Entities): Also recurse into blocks without label.
2018-05-29 Ed Schonberg <schonberg@adacore.com> 2018-05-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for * exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for

View File

@ -408,7 +408,12 @@ package body Repinfo is
-- info for the full view). If debug flag A is set, then all -- info for the full view). If debug flag A is set, then all
-- entities are listed -- 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 Is_Incomplete_Or_Private_Type (E)
and then not (Ekind (E) = E_Constant and then not (Ekind (E) = E_Constant
and then Present (Full_View (E)))) and then Present (Full_View (E))))