#include #include #include #include struct A { int32_t namespace_; float float_; }; struct B { int32_t namespace_; float float_; }; enum C_Tag { D, }; typedef uint8_t C_Tag; struct D_Body { int32_t namespace_; float float_; }; struct C { C_Tag tag; union { struct D_Body d; }; }; enum E_Tag { Double, Float, }; typedef uint8_t E_Tag; struct E { E_Tag tag; union { struct { double double_; }; struct { float float_; }; }; }; enum F_Tag { double_, float_, }; typedef uint8_t F_Tag; struct F { F_Tag tag; union { struct { double double_; }; struct { float float_; }; }; }; void root(struct A a, struct B b, struct C c, struct E e, struct F f, int32_t namespace_, float float_);