| #include <cstdarg> |
| #include <cstdint> |
| #include <cstdlib> |
| #include <ostream> |
| #include <new> |
| |
| 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" |