Commit 1858863b by Jim Wilson Committed by Jim Wilson

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
parent 4ed442c9
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> 2000-03-09 Benjamin Kosnik <bkoz@cygnus.com>
* config/alpha/linux.h (WCHAR_TYPE): Make consistent. * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
......
...@@ -3472,13 +3472,14 @@ expand_assignment (to, from, want_value, suggest_reg) ...@@ -3472,13 +3472,14 @@ expand_assignment (to, from, want_value, suggest_reg)
val = setjmp (buf) on machines where reference to val val = setjmp (buf) on machines where reference to val
requires loading up part of an address in a separate insn. 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 Don't do this if TO is a VAR_DECL or PARM_DECL whose DECL_RTL is REG
a promoted variable where the zero- or sign- extension needs to be done. since it might be a promoted variable where the zero- or sign- extension
Handling this in the normal way is safe because no computation is done needs to be done. Handling this in the normal way is safe because no
before the call. */ computation is done before the call. */
if (TREE_CODE (from) == CALL_EXPR && ! aggregate_value_p (from) if (TREE_CODE (from) == CALL_EXPR && ! aggregate_value_p (from)
&& TREE_CODE (TYPE_SIZE (TREE_TYPE (from))) == INTEGER_CST && 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; rtx value;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment