1/* { dg-do compile } */ 2/* { dg-options "-O -fdump-tree-gimple" } */ 3 4struct foo { 5 unsigned a1: 1; 6 unsigned a2: 3; 7 unsigned : 4; 8}; 9 10extern struct foo thefoo, theotherfoo; 11 12void setup_foo(void) 13{ 14 const struct foo init = { 15 .a1 = 1, 16 .a2 = 5, 17 }; 18 volatile const struct foo volinit = { 19 .a1 = 0, 20 .a2 = 6 21 }; 22 thefoo = init; 23 theotherfoo = volinit; 24} 25 26/* { dg-final { scan-tree-dump-times "thefoo.* = {}" 1 "gimple"} } */ 27/* { dg-final { scan-tree-dump-times "thefoo.* = 1" 1 "gimple"} } */ 28/* { dg-final { scan-tree-dump-times "thefoo.* = 5" 1 "gimple"} } */ 29/* { dg-final { scan-tree-dump-times "theotherfoo = volinit" 1 "gimple"} } */ 30/* { dg-final { cleanup-tree-dump "gimple" } } */ 31