1 /* { dg-skip-if "" { "h8300*-*-*" } "*" "-msx*" }  */
2 /* ICE for bit instruction generation using 16-bit const */
3 
4 __extension__ struct st_mstp
5 {
6   union
7   {
8     unsigned short WORD;
9     struct
10     {
11       unsigned char ACSE:1;
12       unsigned char _EXDMAC:1;
13       unsigned char _DMAC:1;
14       unsigned char _DTC:1;
15       unsigned char:2;
16       unsigned char _TMR23:1;
17       unsigned char _TMR01:1;
18       unsigned char:2;
19       unsigned char _DA:1;
20       unsigned char:1;
21       unsigned char _AD:1;
22       unsigned char:1;
23       unsigned char _TPUU:1;
24       unsigned char _TPUL:1;
25     } BIT;
26   } CRA;
27 };
28 #define MSTP    (*(volatile struct st_mstp  *)0xFFFDC8)
29 #define MSTPA_EXDMA    0x4000
30 #define MSTPA_AND      0xFEFF
31 
32 int
main()33 main ()
34 {
35   MSTP.CRA.WORD |= MSTPA_EXDMA;
36   MSTP.CRA.WORD ^= MSTPA_EXDMA;
37   MSTP.CRA.WORD &= MSTPA_AND;
38   return 0;
39 }
40