Index: calls.c =================================================================== --- calls.c (revision 234098) +++ calls.c (working copy) @@ -3852,7 +3852,7 @@ emit_library_call_value_1 (int retval, r 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) @@ -3869,7 +3869,7 @@ emit_library_call_value_1 (int retval, r flags |= ECF_NORETURN; break; case LCT_THROW: - flags = ECF_NORETURN; + flags &= ~ECF_NOTHROW; break; case LCT_RETURNS_TWICE: flags = ECF_RETURNS_TWICE; Index: explow.c =================================================================== --- explow.c (revision 234098) +++ explow.c (working copy) @@ -1566,7 +1566,7 @@ probe_stack_range (HOST_WIDE_INT first, 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); }