decl.c (variant_desc): Add AUX field.
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 12 Jun 2018 09:51:26 +0000 (09:51 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 12 Jun 2018 09:51:26 +0000 (09:51 +0000)
commitcd8ad45920aaf33a660b85878c572298faba06bf
tree3c8c32322ff2d79c1acfc7387a1606252f353502
parent835d417373cf5843051885e2cba29aea30814606
decl.c (variant_desc): Add AUX field.

* gcc-interface/decl.c (variant_desc): Add AUX field.
(gnat_to_gnu_entity) <discrete_type>: Do not call compute_record_mode
directly.
(reverse_sort_field_list): New static function.
(components_to_record): Place the variant part at the beginning of the
field list when there is an obvious order of increasing position.
(build_variant_list): Initialize it.
(create_variant_part_from): Do not call compute_record_mode directly.
(copy_and_substitute_in_layout): Likewise.  Always sort the fields with
fixed position in order of increasing position, in the record and all
the variants, in any.  Call reverse_sort_field_list.
* gcc-interface/utils.c (make_packable_type): Compute the sizes before
calling finish_record_type.  Do not call compute_record_mode directly.
(finish_record_type): Overhaul final processing depending on REP_LEVEL
and call finish_bitfield_layout if it is equal to one or two.

From-SVN: r261479
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/utils.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/opt72_pkg.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/opt72a.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/opt72b.adb [new file with mode: 0644]