https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63986

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2014-11-20
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
   Target Milestone|---                         |5.0
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think you were mostly lucky -- 4.9 expands from

  <bb 2>:
  _3 = a_2(D) == 0;
  _13 = ~_3;
  _7 = (int) _13;
  MEM[(int *)d_5(D) + 8B] = _7;
  if (_3 != 0)

which it reaches in a very weird way through several optimization passes
while trunk now has

  <bb 2>:
  _7 = a_2(D) != 0;
  _8 = (int) _7;
  MEM[(int *)d_5(D) + 8B] = _8;
  if (a_2(D) == 0)

which has un-CSEd the a_2 == 0 comparison due to a bug I introduced.

Reply via email to