mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-06 15:40:53 +08:00
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
This commit is contained in:
parent
743f3c7bcf
commit
a153ae1597
@ -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.
|
||||
|
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user