[committed] Fix previously latent bug in reorg affecting cris port
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / pr64505.c
blob42b961f3df548257ee31b2c36b653807c4bd1543
1 /* { dg-do compile } */
2 /* { dg-skip-if "" { powerpc*-*-aix* } } */
3 /* { dg-options "-w -O2 -mpowerpc64" } */
5 /*
6 * (below is minimized test case)
7 */
9 extern double pow(double x, double y);
10 extern long func ();
11 short global0, global1;
12 static int i0, i1, i2, i3, i4, i5;
13 double dbl, *array0, *array1;
15 void
16 pr64505 (short *arg0, double *arg1)
18 int error = 0;
19 short num = func (&global1 + 15, &error);
20 for (int j = 0; j < array0[0]; j++)
22 if (j == 0)
24 func (arg0, &global1 + 20, &error);
25 array0[0] = num;
27 else
29 double cr = (&dbl)[1];
30 if (func (&i4))
31 func (0, &(&array0)[j]);
32 if (func (&i5))
34 if ((&global1)[12])
35 cr = array1[j];
37 if (func (&i2)
38 && (&global1)[12])
40 if (func (&i1))
41 pow ((&dbl)[1], 2);
43 array0[j] = cr;
45 if (func (&i0) && global0)
46 func (((short *) array0 + 1)[j]);
48 short ad = func (&global1 + 15, 0);
49 if (func (&i3) && func ())
50 *arg1 = *((double *) &global1) * ad;
51 func (&global1 + 15);