diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2018-05-29 09:42:16 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2018-05-29 09:42:16 +0000 |
commit | 944e24a31a9b3b3c4494853a8e2a2d589f65519f (patch) | |
tree | 32d0a4ddf43bc8f544bea46b9d63e629baa3c54e /gcc | |
parent | 3747db827dfedd0f91e08f74b4082da8c0b2df5e (diff) | |
download | gcc-944e24a31a9b3b3c4494853a8e2a2d589f65519f.zip gcc-944e24a31a9b3b3c4494853a8e2a2d589f65519f.tar.gz gcc-944e24a31a9b3b3c4494853a8e2a2d589f65519f.tar.bz2 |
[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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ada/repinfo.adb | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index fecd0f1..0d478b0 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -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> * 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 1a85c8f..a88a3f2 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)))) |