diff options
author | Richard Kenner <kenner@gnat.com> | 2001-10-08 14:06:05 +0000 |
---|---|---|
committer | Geert Bosch <bosch@gcc.gnu.org> | 2001-10-08 16:06:05 +0200 |
commit | a153ae15978eb73d04afcf141aaac12b7c6e9356 (patch) | |
tree | 4fa0b38991939b9ab9b4b5ec29d8d7d854e8b6b6 /gcc/ada | |
parent | 743f3c7bcfa4a3793a082ab5f01330b81ef08fff (diff) | |
download | gcc-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
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ada/misc.c | 25 |
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. */ |