* cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.
authorRichard Henderson <rth@redhat.com>
Sat, 29 Sep 2001 00:25:08 +0000 (17:25 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sat, 29 Sep 2001 00:25:08 +0000 (17:25 -0700)
From-SVN: r45870

gcc/ChangeLog
gcc/cfgrtl.c

index 3b5970c0a951dde7b21e6e0d2700052d1accc321..3c3e8a3ef8a38d3a5bb920e580c261b53c46d6d9 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 953ff80dc83464992e3518374e3f81b0944fc6e5..f5e678545b7b660ef76ac7d8beea9a6e0116e17c 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)