http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56977
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2013-06-17 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Target Milestone|--- |4.8.2 Ever confirmed|0 |1 --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Interesting because we do fold the call and end up with f (int i) { int _3; <bb 2>: _3 = 0; if (_3 != 0) goto <bb 3>; else goto <bb 4>; <bb 3>: error (); <bb 4>: return; where the zero does not end up being propagated into the conditional at any point further down into the compilation ... (TER is disabled which is what usually saves us here). A simple solution is to exchange pass_fold_builtins and pass_dce in pass_all_optimizations_g.