1 /* PR rtl-optimization/54290 */ 2 /* Testcase by Eric Volk <eriksnga@gmail.com> */ 3 /* { dg-require-effective-target int32plus } */ 4 5 double vd[2] = {1., 0.}; 6 int vi[2] = {1234567890, 0}; 7 double *pd = vd; 8 int *pi = vi; 9 10 extern void abort(void); 11 12 void init (int *n, int *dummy) __attribute__ ((noinline,noclone)); 13 init(int * n,int * dummy)14void init (int *n, int *dummy) 15 { 16 if(0 == n) dummy[0] = 0; 17 } 18 main(void)19int main (void) 20 { 21 int dummy[1532]; 22 int i = -1, n = 1, s = 0; 23 init (&n, dummy); 24 while (i < n) { 25 if (i == 0) { 26 if (pd[i] > 0) { 27 if (pi[i] > 0) { 28 s += pi[i]; 29 } 30 } 31 pd[i] = pi[i]; 32 } 33 ++i; 34 } 35 if (s != 1234567890) 36 abort (); 37 return 0; 38 } 39