diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2010-04-07 11:38:06 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-04-07 11:38:06 +0000 |
commit | b1fa9126ab0782c68bd92431a7bb93de0931fc3d (patch) | |
tree | ac0006f43531b02d2b839144ae3cd43264776aeb /gcc/ada/gcc-interface/utils.c | |
parent | 19c846942984690edb7ef6ed29be08a0aae1868a (diff) | |
download | gcc-b1fa9126ab0782c68bd92431a7bb93de0931fc3d.zip gcc-b1fa9126ab0782c68bd92431a7bb93de0931fc3d.tar.gz gcc-b1fa9126ab0782c68bd92431a7bb93de0931fc3d.tar.bz2 |
exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type if the size is small enough.
* exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type
if the size is small enough. Propagate the alignment if there is an
alignment clause on the original array type.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>
Deal with under-aligned packed array types. Copy the size onto the
justified modular type and don't lay it out again. Likewise for the
padding type built for other under-aligned subtypes.
* gcc-interface/utils.c (finish_record_type): Do not set a default mode
on the type.
From-SVN: r158056
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
-rw-r--r-- | gcc/ada/gcc-interface/utils.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c index 1444d6e..ecb0495 100644 --- a/gcc/ada/gcc-interface/utils.c +++ b/gcc/ada/gcc-interface/utils.c @@ -595,10 +595,10 @@ finish_record_type (tree record_type, tree field_list, int rep_level, if (rep_level > 0) { TYPE_ALIGN (record_type) = MAX (BITS_PER_UNIT, TYPE_ALIGN (record_type)); - SET_TYPE_MODE (record_type, BLKmode); if (!had_size_unit) TYPE_SIZE_UNIT (record_type) = size_zero_node; + if (!had_size) TYPE_SIZE (record_type) = bitsize_zero_node; |