| /* PR tree-optimization/103255 */ | |
| struct H | |
| { | |
| unsigned a; | |
| unsigned b; | |
| unsigned c; | |
| }; | |
| #if __SIZEOF_POINTER__ >= 4 | |
| #define ADDR 0x400000 | |
| #else | |
| #define ADDR 0x4000 | |
| #endif | |
| #define OFF 0x20 | |
| int | |
| main () | |
| { | |
| struct H *h = 0; | |
| unsigned long o; | |
| volatile int t = 1; | |
| for (o = OFF; o <= OFF; o += 0x1000) | |
| { | |
| struct H *u; | |
| u = (struct H *) (ADDR + o); | |
| if (t) | |
| { | |
| h = u; | |
| break; | |
| } | |
| } | |
| if (h == 0) | |
| return 0; | |
| unsigned *tt = &h->b; | |
| if ((__SIZE_TYPE__) tt != (ADDR + OFF + __builtin_offsetof (struct H, b))) | |
| __builtin_abort (); | |
| return 0; | |
| } |