| typedef struct |
| { |
| unsigned char a :2; |
| unsigned char :0; |
| unsigned short b :5; |
| unsigned char :0; |
| unsigned short c :3; |
| unsigned char :0; |
| unsigned int d :9; |
| } test_st_1; |
| |
| typedef struct |
| { |
| unsigned short a :7; |
| unsigned char :0; |
| unsigned char b :1; |
| unsigned char :0; |
| unsigned short c :6; |
| } test_st_2; |
| |
| typedef union |
| { |
| test_st_1 st_1; |
| test_st_2 st_2; |
| }test_un; |
| |
| typedef union |
| { |
| test_un un; |
| struct |
| { |
| unsigned int v1; |
| unsigned int v2; |
| unsigned int v3; |
| unsigned int v4; |
| }values; |
| } read_un; |
| |
| |
| typedef void __attribute__ ((cmse_nonsecure_call)) (*foo_ns) (test_un); |
| |
| int |
| main (void) |
| { |
| read_un r; |
| foo_ns f; |
| |
| f = (foo_ns) 0x200000; |
| r.values.v1 = 0xFFFFFFFF; |
| r.values.v2 = 0xFFFFFFFF; |
| |
| f (r.un); |
| return 0; |
| } |