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
+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>
* exp_ch6.adb (Expand_N_Subprogram_Body): Do not generate push/pop for
-- 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))))