| /* { dg-do run } */ | |
| /* { dg-options "-O" } */ | |
| #if __SIZEOF_INT__ == 2 | |
| #define int __INT32_TYPE__ | |
| #endif | |
| struct A | |
| { | |
| int b; | |
| int c; | |
| int d; | |
| }; | |
| struct E | |
| { | |
| int f; | |
| int g:18; | |
| struct A h; | |
| }; | |
| struct I | |
| { | |
| int b; | |
| int j; | |
| struct E k; | |
| }; | |
| int l, *m = &l; | |
| struct A n; | |
| struct I o; | |
| void __attribute__ ((noipa)) | |
| test_l (void) | |
| { | |
| if (l != 1) | |
| __builtin_abort (); | |
| } | |
| #undef int | |
| int main () | |
| { | |
| while (1) | |
| { | |
| struct I q = { 0, 0, {0, 0, {1, 1, 1}}}, p = q, r = p, *s = &q; | |
| if (p.k.h.c) | |
| o = p; | |
| *m = r.k.h.d; | |
| n = (*s).k.h; | |
| break; | |
| } | |
| test_l (); | |
| return 0; | |
| } |