OSDN Git Service

(mark_loop_jump): Handle weird cases like jumping to a symbol_ref.
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 24 Jul 1993 06:52:44 +0000 (06:52 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 24 Jul 1993 06:52:44 +0000 (06:52 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4981 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/loop.c

index ad82384..1d1c03a 100644 (file)
@@ -2538,8 +2538,17 @@ mark_loop_jump (x, loop_num)
       return;
 
     default:
-      /* Nothing else should occur in a JUMP_INSN.  */
-      abort ();
+      /* Treat anything else (such as a symbol_ref)
+        as a branch out of this loop, but not into any loop.  */
+
+      if (loop_num != -1)
+       {
+         LABEL_OUTSIDE_LOOP_P (x) = 1;
+         LABEL_NEXTREF (x) = loop_number_exit_labels[loop_num];
+         loop_number_exit_labels[loop_num] = x;
+       }
+
+      return;
     }
 }
 \f