/* { dg-do compile } */ /* { dg-skip-if "" { ! { clmcpu } } } */ /* { dg-options "-mcpu=nps400 -mbitops -munaligned-access -mcmem -O2 -fno-strict-aliasing" } */ enum npsdp_mem_space_type { NPSDP_EXTERNAL_MS = 1 }; struct npsdp_ext_addr { struct { struct { enum npsdp_mem_space_type mem_type : 1; unsigned msid : 5; }; }; char user_space[]; } a; char b; void fn1() { ((struct npsdp_ext_addr *)a.user_space)->mem_type = NPSDP_EXTERNAL_MS; ((struct npsdp_ext_addr *)a.user_space)->msid = ((struct npsdp_ext_addr *)a.user_space)->mem_type ? 1 : 10; while (b) ; }