gigi.h (pad_type_has_rm_size): Declare.
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 14 Dec 2017 11:47:24 +0000 (11:47 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 14 Dec 2017 11:47:24 +0000 (11:47 +0000)
commit4d39941ea9e6fe059084be9f5dea7e29e055db91
treecb51425855d3854723367fc3c5edb23fca63211e
parent02aee327674dae6359d7b1e1a7434f039ba0c3d3
gigi.h (pad_type_has_rm_size): Declare.

* gcc-interface/gigi.h (pad_type_has_rm_size): Declare.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build
a padding type for the alignment before validating the size.
Flip conditional construct and add a comment.
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Make sure to
apply the exception for padded objects to the type of the object.
* gcc-interface/utils.c (hash_pad_type): New static function.
(lookup_and_insert_pad_type): Rename into...
(canonicalize_pad_type): ...this.  Call hash_pad_type, do only one
lookup with insertion and always return the canonical type.
(maybe_pad_type): Adjust to above changes.  Set debug type later.
(pad_type_has_rm_size): New predicate.
(set_reverse_storage_order_on_pad_type): Adjust to above changes.

From-SVN: r255631
gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/gigi.h
gcc/ada/gcc-interface/trans.c
gcc/ada/gcc-interface/utils.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/alignment11.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/alignment12.adb [new file with mode: 0644]