modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr78170.c (about) 1 /* { dg-require-effective-target int32plus } */ 2 3 /* PR tree-optimization/78170. 4 Check that sign-extended store to a bitfield 5 doesn't overwrite other fields. */ 6 7 int a, b, d; 8 9 struct S0 10 { 11 int f0; 12 int f1; 13 int f2; 14 int f3; 15 int f4; 16 int f5:15; 17 int f6:17; 18 int f7:2; 19 int f8:30; 20 } c; 21 22 void fn1 () 23 { 24 d = b = 1; 25 for (; b; b = a) 26 { 27 struct S0 e = { 0, 0, 0, 0, 0, 0, 1, 0, 1 }; 28 c = e; 29 c.f6 = -1; 30 } 31 } 32 33 int main () 34 { 35 fn1 (); 36 if (c.f7 != 0) 37 __builtin_abort (); 38 return 0; 39 }