https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119605
Bug ID: 119605 Summary: change the code fixup_cfg for __builtin_unreachable to be a verifier Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: internal-improvement Severity: enhancement Priority: P3 Component: tree-optimization Assignee: pinskia at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- fixup_cfg does: /* If we have a basic block with no successors that does not end with a control statement or a noreturn call end it with a call to __builtin_unreachable. This situation can occur when inlining a noreturn call that does in fact return. */ This was added in r0-119774-g9037dcc6adff20 to fix PR 54824. I suspect we change it to be a verifier instead and flush out the places which does not do the right thing. The inliner is fully fixed at -O0 via PR 119599. At -O1+ the inliner didn't need a fix as r8-3988-g356fcc67fba52b (PR 82158) replaces return with __builtin_unreachable when optimizing.