OSDN Git Service

(expand_end_bindings): Add test and call for nonlocal_goto_receiver
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Aug 1996 11:46:32 +0000 (11:46 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Aug 1996 11:46:32 +0000 (11:46 +0000)
pattern.
(expand_asm_operands): Fix off-by-one error when scanning constraints.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12622 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/stmt.c

index b443fc4..080b1e4 100644 (file)
@@ -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.  */