| typedef struct |
| { |
| unsigned short a :11; |
| } test_st_4; |
| |
| typedef union |
| { |
| char a; |
| test_st_4 st4; |
| }test_un_2; |
| |
| typedef struct |
| { |
| unsigned char a; |
| unsigned int :0; |
| unsigned int b :1; |
| unsigned short :0; |
| unsigned short c; |
| unsigned int :0; |
| unsigned int d :21; |
| } test_st_3; |
| |
| typedef struct |
| { |
| unsigned char a :3; |
| unsigned int b :13; |
| test_un_2 un2; |
| } test_st_2; |
| |
| typedef union |
| { |
| test_st_2 st2; |
| test_st_3 st3; |
| }test_un_1; |
| |
| typedef struct |
| { |
| unsigned char a :2; |
| unsigned char :0; |
| unsigned short b :5; |
| unsigned char :0; |
| unsigned char c :4; |
| test_un_1 un1; |
| } test_st_1; |
| |
| typedef union |
| { |
| test_st_1 st1; |
| struct |
| { |
| unsigned int v1; |
| unsigned int v2; |
| unsigned int v3; |
| unsigned int v4; |
| }values; |
| } read_st_1; |
| |
| |
| typedef void __attribute__ ((cmse_nonsecure_call)) (*foo_ns) (test_st_1); |
| |
| int |
| main (void) |
| { |
| read_st_1 r; |
| foo_ns f; |
| |
| f = (foo_ns) 0x200000; |
| r.values.v1 = 0xFFFFFFFF; |
| r.values.v2 = 0xFFFFFFFF; |
| r.values.v3 = 0xFFFFFFFF; |
| r.values.v4 = 0xFFFFFFFF; |
| |
| f (r.st1); |
| return 0; |
| } |