/* { dg-do run } */ | |
/* { dg-options "-O2 -fsigned-char -fno-strict-aliasing -fwrapv" } */ | |
union a { | |
unsigned short b; | |
int c; | |
signed short d; | |
}; | |
int e, f = 1, g; | |
long h; | |
const int **i; | |
void j(union a k, int l, unsigned m) { | |
const int *a[100]; | |
i = &a[0]; | |
h = k.d; | |
} | |
static int o(union a k) { | |
k.d = -1; | |
while (1) | |
if (f) | |
break; | |
j(k, g, e); | |
return 0; | |
} | |
int main() { | |
union a n = {1}; | |
o(n); | |
if (h != -1) | |
__builtin_abort(); | |
return 0; | |
} |