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