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



Jakub Jelinek <jakub at gcc dot gnu.org> changed:



           What    |Removed                     |Added

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

             Status|UNCONFIRMED                 |NEW

   Last reconfirmed|                            |2013-03-01

                 CC|                            |jakub at gcc dot gnu.org

   Target Milestone|---                         |4.7.3

            Summary|wrong code for loop at -O3  |[4.7 Regression] wrong code

                   |                            |for loop at -O3

     Ever Confirmed|0                           |1



--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-03-01 
07:59:16 UTC ---

Seems to have started with

http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181172

and fixed by http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190614



Slightly cleaned up testcase:

int a, c, d = 1;

struct S { int s; } b, f;

short e;



void

foo (int x)

{

  int g[] = { };

  for (e = 0; e != 1; e = e + 5)

    {

      int *h[1] = { &g[0] };

      if (!x)

return;

      f = b;

    }

}



int

main ()

{

  int i, j;

  for (i = 0; i < 6; i++)

    for (j = 8; j; j--)

      a = 0;

  foo (d);

  while (c)

    ;

  return 0;

}

Reply via email to