40 lines
591 B
C
40 lines
591 B
C
/* { dg-do run } */
|
|
/* { dg-options "-O -fstrict-aliasing -fgcse" } */
|
|
|
|
/* PR optimization/10087 */
|
|
/* Contributed by Peter van Hoof <p.van-hoof@qub.ac.uk> */
|
|
|
|
extern void abort(void);
|
|
|
|
void b(int*,int*);
|
|
|
|
typedef struct {
|
|
double T1;
|
|
char c;
|
|
} S;
|
|
|
|
int main(void)
|
|
{
|
|
int i,j;
|
|
double s;
|
|
|
|
S x1[2][2];
|
|
S *x[2] = { x1[0], x1[1] };
|
|
S **E = x;
|
|
|
|
for( i=0; i < 2; i++ )
|
|
for( j=0; j < 2; j++ )
|
|
E[j][i].T1 = 1;
|
|
|
|
for( i=0; i < 2; i++ )
|
|
for( j=0; j < 2; j++ )
|
|
s = E[j][i].T1;
|
|
|
|
b(&j,&i);
|
|
if (s != 1)
|
|
abort ();
|
|
return 0;
|
|
}
|
|
|
|
void b(int *i, int *j) {}
|