From: Richard Kenner Date: Mon, 12 Aug 1996 11:46:32 +0000 (-0400) Subject: (expand_end_bindings): Add test and call for nonlocal_goto_receiver pattern. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4e05a62cb769ebe4f413a9119d7729126e85302b;p=gcc.git (expand_end_bindings): Add test and call for nonlocal_goto_receiver pattern. (expand_end_bindings): Add test and call for nonlocal_goto_receiver pattern. (expand_asm_operands): Fix off-by-one error when scanning constraints. From-SVN: r12622 --- diff --git a/gcc/stmt.c b/gcc/stmt.c index b443fc428f3..080b1e4466e 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -1416,7 +1416,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) the worst that happens if we get it wrong is we issue an error message. */ - for (j = 0; j < TREE_STRING_LENGTH (TREE_PURPOSE (tail)) - 1; j++) + for (j = 0; j < TREE_STRING_LENGTH (TREE_PURPOSE (tail)); j++) switch (TREE_STRING_POINTER (TREE_PURPOSE (tail))[j]) { case '+': @@ -1522,7 +1522,7 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) /* Make sure constraint has neither `=' nor `+'. */ - for (j = 0; j < TREE_STRING_LENGTH (TREE_PURPOSE (tail)) - 1; j++) + for (j = 0; j < TREE_STRING_LENGTH (TREE_PURPOSE (tail)); j++) switch (TREE_STRING_POINTER (TREE_PURPOSE (tail))[j]) { case '+': case '=': @@ -3176,6 +3176,11 @@ expand_end_bindings (vars, mark_ends, dont_jump_in) } #endif +#ifdef HAVE_nonlocal_goto_receiver + if (HAVE_nonlocal_goto_receiver) + emit_insn (gen_nonlocal_goto_receiver ()); +#endif + /* The handler expects the desired label address in the static chain register. It tests the address and does an appropriate jump to whatever label is desired. */