aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gnat.com>2001-10-08 14:06:05 +0000
committerGeert Bosch <bosch@gcc.gnu.org>2001-10-08 16:06:05 +0200
commita153ae15978eb73d04afcf141aaac12b7c6e9356 (patch)
tree4fa0b38991939b9ab9b4b5ec29d8d7d854e8b6b6
parent743f3c7bcfa4a3793a082ab5f01330b81ef08fff (diff)
downloadgcc-a153ae15978eb73d04afcf141aaac12b7c6e9356.zip
gcc-a153ae15978eb73d04afcf141aaac12b7c6e9356.tar.gz
gcc-a153ae15978eb73d04afcf141aaac12b7c6e9356.tar.bz2
misc.c (gnat_expand_expr, [...]): Consistently set MEM attributes from expression; fixes bootstrap failure on x86.
* misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR): Consistently set MEM attributes from expression; fixes bootstrap failure on x86. From-SVN: r46076
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/misc.c25
2 files changed, 11 insertions, 20 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 338ea66..013a8f2 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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.
diff --git a/gcc/ada/misc.c b/gcc/ada/misc.c
index a806d24..dbfe9e3 100644
--- a/gcc/ada/misc.c
+++ b/gcc/ada/misc.c
@@ -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. */