1/* { dg-do run } */ 2 3extern "C" void abort (void); 4struct S { unsigned int i : 24; } x; 5void __attribute__((noinline)) test1() 6{ 7 if (--x.i != 0x00ffffff) 8 abort (); 9 if (x.i != 0x00ffffff) 10 abort (); 11} 12void __attribute__((noinline)) test2() 13{ 14 if (x.i-- != 0) 15 abort (); 16 if (x.i != 0x00ffffff) 17 abort (); 18} 19void __attribute__((noinline)) test3() 20{ 21 if (++x.i != 0) 22 abort (); 23 if (x.i != 0) 24 abort (); 25} 26void __attribute__((noinline)) test4() 27{ 28 if (x.i++ != 0x00ffffff) 29 abort (); 30 if (x.i != 0) 31 abort (); 32} 33int main() 34{ 35 x.i = 0; 36 test1(); 37 x.i = 0; 38 test2(); 39 x.i = 0x00ffffff; 40 test3(); 41 x.i = 0x00ffffff; 42 test4(); 43 return 0; 44} 45