typedef struct { unsigned char a; unsigned int b : 3; unsigned int c : 14; unsigned int d : 1; struct { unsigned int ee : 2; unsigned short ff : 15; } e; unsigned char g : 1; unsigned char : 4; unsigned char h : 3; } test_st; typedef union { test_st st; struct { unsigned int v1; unsigned int v2; unsigned int v3; unsigned int v4; }values; } read_st; typedef void __attribute__ ((cmse_nonsecure_call)) (*foo_ns) (test_st); int main (void) { read_st 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.st); return 0; }