111
|
1 /* { dg-do run } */
|
|
2 /* { dg-options "-O -fstrict-aliasing -fgcse" } */
|
|
3
|
|
4 /* PR optimization/10087 */
|
|
5 /* Contributed by Peter van Hoof <p.van-hoof@qub.ac.uk> */
|
|
6
|
|
7 extern void abort(void);
|
|
8
|
|
9 void b(int*,int*);
|
|
10
|
|
11 typedef struct {
|
|
12 double T1;
|
|
13 char c;
|
|
14 } S;
|
|
15
|
|
16 int main(void)
|
|
17 {
|
|
18 int i,j;
|
|
19 double s;
|
|
20
|
|
21 S x1[2][2];
|
|
22 S *x[2] = { x1[0], x1[1] };
|
|
23 S **E = x;
|
|
24
|
|
25 for( i=0; i < 2; i++ )
|
|
26 for( j=0; j < 2; j++ )
|
|
27 E[j][i].T1 = 1;
|
|
28
|
|
29 for( i=0; i < 2; i++ )
|
|
30 for( j=0; j < 2; j++ )
|
|
31 s = E[j][i].T1;
|
|
32
|
|
33 b(&j,&i);
|
|
34 if (s != 1)
|
|
35 abort ();
|
|
36 return 0;
|
|
37 }
|
|
38
|
|
39 void b(int *i, int *j) {}
|