Commit 25a1fcb4 by Richard Kenner Committed by Richard Kenner

calls.c (expand_call): If TARGET is passed by reference and is readonly, write a CLOBBER.

	* calls.c (expand_call): If TARGET is passed by reference and
	is readonly, write a CLOBBER.

From-SVN: r32716
parent 4b2a62db
Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* calls.c (expand_call): If TARGET is passed by reference and
is readonly, write a CLOBBER.
2000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.c (expand_builtin): Handle bcmp.
......
......@@ -2776,6 +2776,14 @@ expand_call (exp, target, ignore)
if (is_longjmp)
current_function_calls_longjmp = 1, sibcall_failure = 1;
/* If this function is returning into a memory location marked as
readonly, it means it is initializing that location. But we normally
treat functions as not clobbering such locations, so we need to
specify that this one does. */
if (target != 0 && GET_CODE (target) == MEM
&& structure_value_addr != 0 && RTX_UNCHANGING_P (target))
emit_insn (gen_rtx_CLOBBER (VOIDmode, target));
/* If value type not void, return an rtx for the value. */
/* If there are cleanups to be called, don't use a hard reg as target.
......
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