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.