* cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 29 Sep 2001 00:25:08 +0000 (00:25 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 29 Sep 2001 00:25:08 +0000 (00:25 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45870 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cfgrtl.c

index 3b5970c..3c3e8a3 100644 (file)
@@ -1,3 +1,7 @@
+2001-09-28  Richard Henderson  <rth@redhat.com>
+
+       * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
+
 2001-09-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
index 953ff80..f5e6785 100644 (file)
@@ -860,7 +860,10 @@ redirect_edge_and_branch (e, target)
       /* If the insn doesn't go where we think, we're confused.  */
       if (JUMP_LABEL (insn) != old_label)
        abort ();
-      redirect_jump (insn, block_label (target), 0);
+      /* If the substitution doesn't succeed, die.  This can happen
+        if the back end emitted unrecognizable instructions.  */
+      if (! redirect_jump (insn, block_label (target), 0))
+       abort ();
     }
 
   if (rtl_dump_file)