#include #include #include #include #include enum class MyCLikeEnum { Foo1, Bar1, Baz1, }; enum class MyCLikeEnum_Prepended { Foo1_Prepended, Bar1_Prepended, Baz1_Prepended, }; struct MyFancyStruct { int32_t i; #ifdef __cplusplus inline void foo(); #endif }; struct MyFancyEnum { enum class Tag { Foo, Bar, Baz, }; struct Bar_Body { int32_t _0; }; struct Baz_Body { int32_t _0; }; Tag tag; union { Bar_Body bar; Baz_Body baz; }; #ifdef __cplusplus inline void wohoo(); #endif }; union MyUnion { float f; uint32_t u; int32_t extra_member; }; struct MyFancyStruct_Prepended { #ifdef __cplusplus inline void prepended_wohoo(); #endif int32_t i; }; struct MyFancyEnum_Prepended { #ifdef __cplusplus inline void wohoo(); #endif enum class Tag { Foo_Prepended, Bar_Prepended, Baz_Prepended, }; struct Bar_Prepended_Body { int32_t _0; }; struct Baz_Prepended_Body { int32_t _0; }; Tag tag; union { Bar_Prepended_Body bar_prepended; Baz_Prepended_Body baz_prepended; }; }; union MyUnion_Prepended { int32_t extra_member; float f; uint32_t u; }; extern "C" { void root(MyFancyStruct s, MyFancyEnum e, MyCLikeEnum c, MyUnion u, MyFancyStruct_Prepended sp, MyFancyEnum_Prepended ep, MyCLikeEnum_Prepended cp, MyUnion_Prepended up); } // extern "C"