/* { dg-do run } */ extern void abort (void); struct X { #if (__SIZEOF_LONG__ != __SIZEOF_INT__) && (__SIZEOF_LONG__ == 8) unsigned long i : 33; #else unsigned long i; #endif }; unsigned long __attribute__((noinline)) foo (struct X *p) { return ~p->i; } int main() { struct X x; x.i = -1; if (foo (&x) != 0) abort (); return 0; }