aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/trans.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2008-04-08 12:25:49 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2008-04-08 12:25:49 +0000
commit2b3dffa66b6294bea45c75538efdf5fe9fd53293 (patch)
tree9abd7e33f14317e7d1a999389d28d0488b0ce318 /gcc/ada/trans.c
parentba3f46d0910139e56300a68bc7992c0217b7adb9 (diff)
downloadgcc-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.c11
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