* decl.c (maybe_pad_type): Try to get a form of the type with integral
commit32958faad5dc0284dd591124a9a2a702a434ebaa
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 3 May 2008 19:35:01 +0000 (3 19:35 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 3 May 2008 19:35:01 +0000 (3 19:35 +0000)
tree8c9f10498aa285c5cda1ea869b4f8d07d9999b77
parentd9e89a65d84edfa8e1e7b5f1e2604cd672997393
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134916 138bc75d-0d04-0410-961f-82ee72b054a4
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