/* { dg-do compile } */ | |
/* { dg-additional-options "-O3" } */ | |
typedef struct { | |
int alg; | |
int h1[8]; | |
unsigned d1[1]; | |
} tmp; | |
typedef struct { | |
tmp itmp; | |
tmp otmp; | |
} h1; | |
h1 c; | |
static void | |
fn1(char *p1, int p2) | |
{ | |
int i = 0; | |
for (; i < 4; i++) | |
*p1++ = p2; | |
} | |
static void | |
fn2(tmp *p1) | |
{ | |
char *d = (char *)p1->d1; | |
int *b = p1->h1; | |
for (int a = 0; a; a++, d += 4) | |
fn1(d, *b++); | |
} | |
void fn3() { fn2(&(&c)->otmp); } |