* misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
authorbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Oct 2001 14:06:05 +0000 (14:06 +0000)
committerbosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 8 Oct 2001 14:06:05 +0000 (14:06 +0000)
Consistently set MEM attributes from expression; fixes
bootstrap failure on x86.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46076 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/misc.c

index 338ea66..013a8f2 100644 (file)
@@ -1,3 +1,9 @@
+2001-10-08  Richard Kenner (kenner@gnat.com)
+
+       * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
+       Consistently set MEM attributes from expression; fixes
+       bootstrap failure on x86.
+
 2001-10-08  Geert Bosch  (bosch@gnat.com)
 
        * 5oosinte.adb: Add 2001 to copyright notice.
index a806d24..dbfe9e3 100644 (file)
@@ -573,26 +573,11 @@ gnat_expand_expr (exp, target, tmode, modifier)
       else if ((TYPE_MODE (type) == BLKmode
                || TYPE_MODE (inner_type) == BLKmode)
               && align_ok)
-       {
-         new = build_unary_op (INDIRECT_REF, NULL_TREE,
-                               convert
-                               (build_pointer_type (type),
-                                build_unary_op (ADDR_EXPR, NULL_TREE,
-                                                TREE_OPERAND (exp, 0))));
-         result = expand_expr (new, target, tmode, modifier);
-
-         if (GET_CODE (result) != MEM)
-           gigi_abort (204);
-
-         /* Since this is really the underlying object, set the flags from
-            the underlying type.
-
-            ??? Note that this is very dubious because it may change the
-            attributes for a temporary location, which is not allowed.  */
-         set_mem_alias_set (result, 0);
-         set_mem_attributes (result, TREE_OPERAND (exp, 0), 0);
-         return result;
-       }
+       new = build_unary_op (INDIRECT_REF, NULL_TREE,
+                             convert
+                             (build_pointer_type (type),
+                              build_unary_op (ADDR_EXPR, NULL_TREE,
+                                              TREE_OPERAND (exp, 0))));
 
       /* Otherwise make a union of the two types, convert to the union, and
         extract the other value.  */