On Mon, Jan 05, 2015 at 07:38:20PM +0100, Richard Biener wrote: > >> During function versioning fixup_cfg pass is supposed to handle that, > >> during IPA inlining there is explicit call to execute_fixup_cfg, but > >during > >> early inlining there is not. > > > >I am still confused why early inliner does any redirections? It should > >not. > >Edge redirection is part of the IPA optimization machinery. > > Possibly through stmt folding.
Generally yes, in this case, I doubt it, it isn't a builtin function. But it is guarded by a false condition (__builtin_constant_p test), so supposedly the early inliner figures out that it doesn't need to bother with the dead call and replaces it with __builtin_unreachable anyway. Jakub