[Ada] Fix -gnatR3 output for dynamically constrained record
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 11 Dec 2018 11:11:47 +0000 (11:11 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Tue, 11 Dec 2018 11:11:47 +0000 (11:11 +0000)
commitf2bee2395180f0e45177ccdd92dca8f327679e46
treeba9cc997c6aebee5701c710b57e0a025241db706
parent619bfd9fef74000750b1683efc79909798104940
[Ada] Fix -gnatR3 output for dynamically constrained record

2018-12-11  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

* gcc-interface/decl.c (gnat_to_gnu_entity): Add
gnat_annotate_type local variable initialized to Empty.
<E_Record_Subtype>: Set it to the Cloned_Subtype, if any.  For
types, back-annotate alignment and size values earlier and only
if the DECL was created here; otherwise, if gnat_annotate_type
is present, take the values from it.
(gnat_to_gnu_field): Add gnat_clause local variable.  If a
component clause is present, call validate_size only once on the
Esize of the component.  Otherwise, in the packed case, do not
call validate_size again on the type of the component but
retrieve directly its RM size.
(components_to_record): Minor tweak.
(set_rm_size): Remove useless test.
* gcc-interface/trans.c (gnat_to_gnu): Do wrap the instance of a
boolean discriminant attached to a variant part.

From-SVN: r267008
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/trans.c