Commit 0529235d by Eric Botcazou Committed by Eric Botcazou

re PR ada/70017 (c52103x and c52104x test failure on s390x)

	PR ada/70017
	* calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
	the libcall is LCT_THROW.
	* explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
	for the checking routine.

From-SVN: r234160
parent 3f1e5d3a
2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
PR ada/70017
* calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
the libcall is LCT_THROW.
* explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
for the checking routine.
2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com> 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/70131 PR target/70131
......
...@@ -3852,7 +3852,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value, ...@@ -3852,7 +3852,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
reg_parm_stack_space = REG_PARM_STACK_SPACE ((tree) 0); reg_parm_stack_space = REG_PARM_STACK_SPACE ((tree) 0);
#endif #endif
/* By default, library functions can not throw. */ /* By default, library functions cannot throw. */
flags = ECF_NOTHROW; flags = ECF_NOTHROW;
switch (fn_type) switch (fn_type)
...@@ -3869,7 +3869,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value, ...@@ -3869,7 +3869,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
flags |= ECF_NORETURN; flags |= ECF_NORETURN;
break; break;
case LCT_THROW: case LCT_THROW:
flags = ECF_NORETURN; flags &= ~ECF_NOTHROW;
break; break;
case LCT_RETURNS_TWICE: case LCT_RETURNS_TWICE:
flags = ECF_RETURNS_TWICE; flags = ECF_RETURNS_TWICE;
......
...@@ -1566,7 +1566,7 @@ probe_stack_range (HOST_WIDE_INT first, rtx size) ...@@ -1566,7 +1566,7 @@ probe_stack_range (HOST_WIDE_INT first, rtx size)
stack_pointer_rtx, stack_pointer_rtx,
plus_constant (Pmode, plus_constant (Pmode,
size, first))); size, first)));
emit_library_call (stack_check_libfunc, LCT_NORMAL, VOIDmode, 1, addr, emit_library_call (stack_check_libfunc, LCT_THROW, VOIDmode, 1, addr,
Pmode); Pmode);
} }
......
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