From: ebotcazou Date: Wed, 30 May 2012 08:53:13 +0000 (+0000) Subject: * explow.c (probe_stack_range): Restore simple control flow and stop X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=158ae3a245a1bda6ede106e1bf30085863107d17 * explow.c (probe_stack_range): Restore simple control flow and stop again when the probe cannot be generated if HAVE_check_stack. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@188004 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8cc1cb29cc4..a6b394dcf82 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-05-30 Eric Botcazou + + * explow.c (probe_stack_range): Restore simple control flow and stop + again when the probe cannot be generated if HAVE_check_stack. + 2012-05-30 Jakub Jelinek PR rtl-optimization/53519 diff --git a/gcc/explow.c b/gcc/explow.c index 11dffedd4b0..a635c7fe984 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -1564,22 +1564,21 @@ probe_stack_range (HOST_WIDE_INT first, rtx size) plus_constant (size, first))); emit_library_call (stack_check_libfunc, LCT_NORMAL, VOIDmode, 1, addr, Pmode); - return; } /* Next see if we have an insn to check the stack. */ #ifdef HAVE_check_stack - if (HAVE_check_stack) + else if (HAVE_check_stack) { struct expand_operand ops[1]; rtx addr = memory_address (Pmode, gen_rtx_fmt_ee (STACK_GROW_OP, Pmode, stack_pointer_rtx, plus_constant (size, first))); - + bool success; create_input_operand (&ops[0], addr, Pmode); - if (maybe_expand_insn (CODE_FOR_check_stack, 1, ops)) - return; + success = maybe_expand_insn (CODE_FOR_check_stack, 1, ops); + gcc_assert (success); } #endif