http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49772
--- Comment #5 from Jan Hubicka <hubicka at ucw dot cz> 2011-08-04 18:32:27 UTC --- > What happens is that in expand_call_inline we fail the inlining via > an error, but at this point of course the edge points to the inline > clone and that stays so. > > I suppose when expand_call_inline fails we have to re-direct the > edge to the original function (huh, eventually make sure it is not > optimized away as well). Well, the problem is that the original function don't have to exist at this point, just an inline clone with posisbly constants propagated into it and thus some edges removed. Undoing this is nontrivial/impossible. > > Or, finally, _never_ fail that late Yep, we need to avoid failing late. Honza