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.

Reply via email to