This changes the output of -gnatR for extensions of tagged record types to
avoid displaying the internal _Parent component, which overlaps with other
components and is thus more confusing than helpful.
For the following hierarchy:
type R1 is tagged record
I : Integer;
end record;
type R2 is new R1 with record
C : Character;
end record;
the output -gnatR must now be:
for R1'Object_Size use 128;
for R1'Value_Size use 96;
for R1'Alignment use 8;
for R1 use record
_Tag at 0 range 0 .. 63;
I at 8 range 0 .. 31;
end record;
for R2'Object_Size use 192;
for R2'Value_Size use 136;
for R2'Alignment use 8;
for R2 use record
_Tag at 0 range 0 .. 63;
I at 8 range 0 .. 31;
C at 16 range 0 .. 7;
end record;
2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
gcc/ada/
* repinfo.adb (Compute_Max_Length): Skip _Parent component.
(List_Record_Layout): Likewise.
From-SVN: r260819
+2018-05-28 Eric Botcazou <ebotcazou@adacore.com>
+
+ * repinfo.adb (Compute_Max_Length): Skip _Parent component.
+ (List_Record_Layout): Likewise.
+
2018-05-28 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Is_Function_Result): Add a warning if a postcondition
goto Continue;
end if;
+ -- Skip _Parent component in extension (to avoid overlap)
+
+ if Chars (Comp) = Name_uParent then
+ goto Continue;
+ end if;
+
-- All other cases
declare
goto Continue;
end if;
+ -- Skip _Parent component in extension (to avoid overlap)
+
+ if Chars (Comp) = Name_uParent then
+ goto Continue;
+ end if;
+
-- All other cases
declare