https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106909
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- <bb 25> [local count: 1073741824]: _80 = SR.96_116(D); # DEBUG this => SR.96_116(D) # DEBUG firstElement => ptrCopy_79(D) # DEBUG elementCount => sizeCopy_83(D) # DEBUG capacity => sizeCopy_83(D) # DEBUG INLINE_ENTRY dispose # DEBUG firstElement => ptrCopy_79(D) # DEBUG elementCount => sizeCopy_83(D) # DEBUG capacity => sizeCopy_83(D) # DEBUG disposer => SR.96_116(D) # DEBUG INLINE_ENTRY dispose _81 = MEM[(const struct ArrayDisposer *)SR.96_116(D)]._vptr.ArrayDisposer; _82 = *_81; __builtin_unreachable (); # DEBUG firstElement => NULL # DEBUG elementCount => NULL # DEBUG capacity => NULL # DEBUG disposer => NULL # DEBUG this => NULL # DEBUG firstElement => NULL # DEBUG elementCount => NULL # DEBUG capacity => NULL after some folding. I fear this is the general gimple_build_builtin_unreachable which is now generally used but esp. folding should _not_ mark the call as control altering but leave that to CFG fixup (CFG cleanup doesn't catch this since it only looks at the last stmt of BBs). I'm fixing up in the use.