diff options
author | bosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-08 14:06:05 +0000 |
---|---|---|
committer | bosch <bosch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-08 14:06:05 +0000 |
commit | 33c2b4c3848e3d337e01842de1b584a277c9787f (patch) | |
tree | 4fa0b38991939b9ab9b4b5ec29d8d7d854e8b6b6 /gcc | |
parent | 0868c72e3c8309a10bf2c22db20866f4a6e94eb4 (diff) | |
download | gcc-33c2b4c3848e3d337e01842de1b584a277c9787f.tar.gz |
* misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
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
Diffstat (limited to 'gcc')
-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 338ea66a4a4..013a8f2b171 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 a806d241ea8..dbfe9e39b34 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. */ |