http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54985



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



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|UNCONFIRMED                 |NEW

      Known to work|                            |4.6.3

           Keywords|                            |wrong-code

   Last reconfirmed|                            |2012-10-19

          Component|middle-end                  |tree-optimization

     Ever Confirmed|0                           |1

            Summary|Dom optimization erroneous  |[4.7/4.8 Regression] dom

                   |remove conditional goto.    |optimization erroneous

                   |                            |remove conditional goto.

   Target Milestone|---                         |4.7.3

      Known to fail|                            |4.7.2, 4.8.0



--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> 2012-10-19 
11:19:38 UTC ---

Confirmed.  Single-file testcase, fails with 4.7 and 4.8.



typedef struct st {

    int a;

} ST;



int __attribute__((noinline,noclone))

foo(ST *s, int c)

{

  int first = 1;

  int count = c;

  ST *item = s;

  int a = s->a;

  int x;



  while (count--)

    {

      x = item->a;

      if (first)

        first = 0;

      else if (x >= a)

        return 1;

      a = x;

      item++;

    }

  return 0;

}



extern void abort (void);



int main ()

{

  ST _1[2] = {{2}, {1}};

  if (foo(_1, 2) != 0)

    abort ();

  return 0;

}

Reply via email to