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 Foo_Body { 29 F_Tag tag; 30 int16_t _0; 31 } Foo_Body; 32 33 typedef struct Bar_Body { 34 F_Tag tag; 35 uint8_t x; 36 int16_t y; 37 } Bar_Body; 38 39 typedef union F { 40 F_Tag tag; 41 Foo_Body foo; 42 Bar_Body bar; 43 } F; 44 45 enum H_Tag { 46 Hello, 47 There, 48 Everyone, 49 }; 50 typedef uint8_t H_Tag; 51 52 typedef struct Hello_Body { 53 int16_t _0; 54 } Hello_Body; 55 56 typedef struct There_Body { 57 uint8_t x; 58 int16_t y; 59 } There_Body; 60 61 typedef struct H { 62 H_Tag tag; 63 union { 64 Hello_Body hello; 65 There_Body there; 66 }; 67 } H; 68 69 void root(A x, B y, C z, F f, H h); 70