| /* { 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) |
| ; |
| } |