diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2008-04-08 12:25:49 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2008-04-08 12:25:49 +0000 |
commit | 2b3dffa66b6294bea45c75538efdf5fe9fd53293 (patch) | |
tree | 9abd7e33f14317e7d1a999389d28d0488b0ce318 /gcc/ada/trans.c | |
parent | ba3f46d0910139e56300a68bc7992c0217b7adb9 (diff) | |
download | gcc-2b3dffa66b6294bea45c75538efdf5fe9fd53293.zip gcc-2b3dffa66b6294bea45c75538efdf5fe9fd53293.tar.gz gcc-2b3dffa66b6294bea45c75538efdf5fe9fd53293.tar.bz2 |
ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
* ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
* decl.c (gnat_to_gnu_entity): Adjust for above change.
<E_Record_Type>: Try to get a better form of the component for
packing, even if it has an integral mode.
<E_Record_Subtype>: Likewise.
* trans.c (gnat_to_gnu): Do not require BLKmode for the special
exception suppressing the final conversion between record types.
Co-Authored-By: Richard Kenner <kenner@adacore.com>
From-SVN: r134093
Diffstat (limited to 'gcc/ada/trans.c')
-rw-r--r-- | gcc/ada/trans.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c index 82aaa99..9fc77ba 100644 --- a/gcc/ada/trans.c +++ b/gcc/ada/trans.c @@ -4848,10 +4848,10 @@ gnat_to_gnu (Node_Id gnat_node) its size since those are the cases where the front end may have the type wrong due to "instantiating" the unconstrained record with discriminant values. Similarly, if the two types are record types - with the same name and the result type has BLKmode, don't convert. - This will be the case when we are converting from a packed version - of a type to its original type and we need those conversions to be - NOPs in order for assignments into these types to work properly. + with the same name don't convert. This will be the case when we are + converting from a packed version of a type to its original type and + we need those conversions to be NOPs in order for assignments into + these types to work properly. 3. If the type is void or if we have no result, return error_mark_node to show we have no result. @@ -4903,8 +4903,7 @@ gnat_to_gnu (Node_Id gnat_node) || ((TYPE_NAME (gnu_result_type) == TYPE_NAME (TREE_TYPE (gnu_result))) && TREE_CODE (gnu_result_type) == RECORD_TYPE - && TREE_CODE (TREE_TYPE (gnu_result)) == RECORD_TYPE - && TYPE_MODE (gnu_result_type) == BLKmode)) + && TREE_CODE (TREE_TYPE (gnu_result)) == RECORD_TYPE)) { /* Remove any padding. */ if (TREE_CODE (TREE_TYPE (gnu_result)) == RECORD_TYPE |