mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-19 16:30:04 +08:00
Fix H.J. Lu's alpha-linux bug with TImode constructors.
* expr.c (expand_expr): Remove previous incorrect change. If target and slot has no DECL_RTL, then call mark_addressable again for the slot after we give it RTL. From-SVN: r15496
This commit is contained in:
parent
7d9e0d333c
commit
21002281e5
@ -1,3 +1,9 @@
|
||||
Tue Sep 16 11:13:46 1997 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* expr.c (expand_expr): Remove previous incorrect change.
|
||||
If target and slot has no DECL_RTL, then call mark_addressable
|
||||
again for the slot after we give it RTL.
|
||||
|
||||
Tue Sep 16 10:14:55 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
18
gcc/expr.c
18
gcc/expr.c
@ -6919,11 +6919,6 @@ expand_expr (exp, target, tmode, modifier)
|
||||
/* All temp slots at this level must not conflict. */
|
||||
preserve_temp_slots (target);
|
||||
DECL_RTL (slot) = target;
|
||||
if (TREE_ADDRESSABLE (slot))
|
||||
{
|
||||
TREE_ADDRESSABLE (slot) = 0;
|
||||
mark_addressable (slot);
|
||||
}
|
||||
|
||||
/* Since SLOT is not known to the called function
|
||||
to belong to its stack frame, we must build an explicit
|
||||
@ -6955,8 +6950,17 @@ expand_expr (exp, target, tmode, modifier)
|
||||
if (TREE_OPERAND (exp, 1) == NULL_TREE)
|
||||
return target;
|
||||
}
|
||||
|
||||
DECL_RTL (slot) = target;
|
||||
else
|
||||
{
|
||||
DECL_RTL (slot) = target;
|
||||
/* If we must have an addressable slot, then make sure that
|
||||
the RTL that we just stored in slot is OK. */
|
||||
if (TREE_ADDRESSABLE (slot))
|
||||
{
|
||||
TREE_ADDRESSABLE (slot) = 0;
|
||||
mark_addressable (slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exp1 = TREE_OPERAND (exp, 3) = TREE_OPERAND (exp, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user