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
+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>
PR target/70131
reg_parm_stack_space = REG_PARM_STACK_SPACE ((tree) 0);
#endif
- /* By default, library functions can not throw. */
+ /* By default, library functions cannot throw. */
flags = ECF_NOTHROW;
switch (fn_type)
flags |= ECF_NORETURN;
break;
case LCT_THROW:
- flags = ECF_NORETURN;
+ flags &= ~ECF_NOTHROW;
break;
case LCT_RETURNS_TWICE:
flags = ECF_RETURNS_TWICE;
stack_pointer_rtx,
plus_constant (Pmode,
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);
}