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.

Reply via email to