1 #include <stdarg.h>
2 #include <stdbool.h>
3 #include <stdint.h>
4 #include <stdlib.h>
5 
6 struct A {
7   int32_t namespace_;
8   float float_;
9 };
10 
11 struct B {
12   int32_t namespace_;
13   float float_;
14 };
15 
16 enum C_Tag {
17   D,
18 };
19 typedef uint8_t C_Tag;
20 
21 struct D_Body {
22   int32_t namespace_;
23   float float_;
24 };
25 
26 struct C {
27   C_Tag tag;
28   union {
29     struct D_Body d;
30   };
31 };
32 
33 enum E_Tag {
34   Double,
35   Float,
36 };
37 typedef uint8_t E_Tag;
38 
39 struct Double_Body {
40   double _0;
41 };
42 
43 struct Float_Body {
44   float _0;
45 };
46 
47 struct E {
48   E_Tag tag;
49   union {
50     struct Double_Body double_;
51     struct Float_Body float_;
52   };
53 };
54 
55 enum F_Tag {
56   double_,
57   float_,
58 };
59 typedef uint8_t F_Tag;
60 
61 struct double_Body {
62   double _0;
63 };
64 
65 struct float_Body {
66   float _0;
67 };
68 
69 struct F {
70   F_Tag tag;
71   union {
72     struct double_Body double_;
73     struct float_Body float_;
74   };
75 };
76 
77 void root(struct A a,
78           struct B b,
79           struct C c,
80           struct E e,
81           struct F f,
82           int32_t namespace_,
83           float float_);
84