decl.c (maybe_pad_type): Try to get a form of the type with integral mode even if...
authorEric Botcazou <ebotcazou@adacore.com>
Sat, 3 May 2008 19:35:01 +0000 (19:35 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Sat, 3 May 2008 19:35:01 +0000 (19:35 +0000)
commit88f36b7eb6a153a914e9b4d678c1ddaddb842747
tree8c9f10498aa285c5cda1ea869b4f8d07d9999b77
parent093daf0fc7ddbde9214ae6cca049bb80fa7d65ab
decl.c (maybe_pad_type): Try to get a form of the type with integral mode even if...

* decl.c (maybe_pad_type): Try to get a form of the type with integral
mode even if the alignment is not a factor of the original size.  But
make sure to create the inner field with the original size.  Reorder.
* trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
record as always addressable.
* utils.c (convert): Deal specially with conversions between original
and packable versions of a record type.
* utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
recognizing an assignment between padded objects.

From-SVN: r134916
gcc/ada/ChangeLog
gcc/ada/decl.c
gcc/ada/trans.c
gcc/ada/utils.c
gcc/ada/utils2.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/alignment4.adb
gcc/testsuite/gnat.dg/alignment5.adb
gcc/testsuite/gnat.dg/alignment6.adb