1 #include <stdarg.h> 2 #include <stdbool.h> 3 #include <stdint.h> 4 #include <stdlib.h> 5 6 enum C { 7 X = 2, 8 Y, 9 }; 10 typedef uint32_t C; 11 12 typedef struct A { 13 int32_t m0; 14 } A; 15 16 typedef struct B { 17 int32_t x; 18 float y; 19 } B; 20 21 enum F_Tag { 22 Foo, 23 Bar, 24 Baz, 25 }; 26 typedef uint8_t F_Tag; 27 28 typedef struct Bar_Body { 29 F_Tag tag; 30 uint8_t x; 31 int16_t y; 32 } Bar_Body; 33 34 typedef union F { 35 F_Tag tag; 36 struct { 37 F_Tag foo_tag; 38 int16_t foo; 39 }; 40 Bar_Body bar; 41 } F; 42 43 enum H_Tag { 44 Hello, 45 There, 46 Everyone, 47 }; 48 typedef uint8_t H_Tag; 49 50 typedef struct There_Body { 51 uint8_t x; 52 int16_t y; 53 } There_Body; 54 55 typedef struct H { 56 H_Tag tag; 57 union { 58 struct { 59 int16_t hello; 60 }; 61 There_Body there; 62 }; 63 } H; 64 65 void root(struct A x, struct B y, C z, union F f, struct H h); 66