mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-08 02:00:03 +08:00
Fix ia64 spec95 134.perl miscompilation.
* expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL same as VAR_DECL. From-SVN: r32463
This commit is contained in:
parent
4ed442c915
commit
1858863bd5
@ -1,3 +1,8 @@
|
||||
Thu Mar 9 20:01:38 2000 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
|
||||
same as VAR_DECL.
|
||||
|
||||
2000-03-09 Benjamin Kosnik <bkoz@cygnus.com>
|
||||
|
||||
* config/alpha/linux.h (WCHAR_TYPE): Make consistent.
|
||||
|
11
gcc/expr.c
11
gcc/expr.c
@ -3472,13 +3472,14 @@ expand_assignment (to, from, want_value, suggest_reg)
|
||||
val = setjmp (buf) on machines where reference to val
|
||||
requires loading up part of an address in a separate insn.
|
||||
|
||||
Don't do this if TO is a VAR_DECL whose DECL_RTL is REG since it might be
|
||||
a promoted variable where the zero- or sign- extension needs to be done.
|
||||
Handling this in the normal way is safe because no computation is done
|
||||
before the call. */
|
||||
Don't do this if TO is a VAR_DECL or PARM_DECL whose DECL_RTL is REG
|
||||
since it might be a promoted variable where the zero- or sign- extension
|
||||
needs to be done. Handling this in the normal way is safe because no
|
||||
computation is done before the call. */
|
||||
if (TREE_CODE (from) == CALL_EXPR && ! aggregate_value_p (from)
|
||||
&& TREE_CODE (TYPE_SIZE (TREE_TYPE (from))) == INTEGER_CST
|
||||
&& ! (TREE_CODE (to) == VAR_DECL && GET_CODE (DECL_RTL (to)) == REG))
|
||||
&& ! ((TREE_CODE (to) == VAR_DECL || TREE_CODE (to) == PARM_DECL)
|
||||
&& GET_CODE (DECL_RTL (to)) == REG))
|
||||
{
|
||||
rtx value;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user