/* 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; }