/* { dg-do compile } */ /* { dg-options "-fstrict-volatile-bitfields -fdump-rtl-final" } */ #define PERIPH (*(volatile struct system_periph *)0x81234) struct system_periph { union { unsigned short WORD; struct { unsigned short a:1; unsigned short b:1; unsigned short :5; unsigned short c:1; unsigned short :8; } BIT; } ALL; }; void foo() { while (1) { PERIPH.ALL.BIT.a = 1; } } /* { dg-final { scan-rtl-dump-times "mem/v(/.)*:HI" 4 "final" } } */ /* { dg-final { cleanup-rtl-dump "final" } } */