One case used fatal_insn which does not return which isn't
intended as can be seen by the following erro = 1.  The following
change refactors this to inline the relevant parts of fatal_insn
instead and continue validating the RTL IL.

Bootstrapped and tested on x86_64-unknown-linux-gnu, will push.

2021-11-25  Richard Biener  <rguent...@suse.de>

        * cfgrtl.c (rtl_verify_fallthru): Do not stop verifying
        with fatal_insn.
        (skip_insns_after_block): Remove unreachable break and continue.
---
 gcc/cfgrtl.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index e3a724bddb4..c7ba9006b4e 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -3001,7 +3001,8 @@ rtl_verify_fallthru (void)
                {
                  error ("verify_flow_info: Incorrect fallthru %i->%i",
                         e->src->index, e->dest->index);
-                 fatal_insn ("wrong insn in the fallthru edge", insn);
+                 error ("wrong insn in the fallthru edge");
+                 debug_rtx (insn);
                  err = 1;
                }
        }
@@ -3540,10 +3541,8 @@ skip_insns_after_block (basic_block bb)
            {
            case NOTE_INSN_BLOCK_END:
              gcc_unreachable ();
-             continue;
            default:
              continue;
-             break;
            }
          break;
 
-- 
2.31.1

Reply via email to