typedef struct { unsigned char a; unsigned int b:5; unsigned int c:11, :0, d:8; struct { unsigned int ee:2; } e; } 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); extern void foo (test_st 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; }