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