aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2010-04-07 11:38:06 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-04-07 11:38:06 +0000
commitb1fa9126ab0782c68bd92431a7bb93de0931fc3d (patch)
treeac0006f43531b02d2b839144ae3cd43264776aeb /gcc/ada/gcc-interface/utils.c
parent19c846942984690edb7ef6ed29be08a0aae1868a (diff)
downloadgcc-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.c2
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;