https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104263
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Note we have an abnormal edge from BB2 to the abnormal dispatcher (missed optimization, we should get rid of it), but the last stmts in the abnormal edge sources are debug vs. non-debug stmts (but neither are calls which are the only sources of abnormal control flow - thus the missed optimization, to be rectified in CFG cleanup I guess or some pass missing to call abnormal cleanup - that would be IPA inlining in this case). int foo () { ;; basic block 2, loop depth 0 ;; pred: ENTRY # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY bar # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT n = 0; # DEBUG BEGIN_STMT # DEBUG a => 0 # DEBUG BEGIN_STMT ;; succ: 3 ;; 5 ;; basic block 3, loop depth 0 ;; pred: 2 n = 1; # DEBUG BEGIN_STMT ;; succ: 4 ;; basic block 4, loop depth 0 ;; pred: 3 ;; 5 # DEBUG BEGIN_STMT return 0; ;; succ: EXIT ;; basic block 5, loop depth 0 ;; pred: 2 .ABNORMAL_DISPATCHER (0); ;; succ: 4