diff options
Diffstat (limited to 'tests/structs/bug613825.c-expected')
-rw-r--r-- | tests/structs/bug613825.c-expected | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/tests/structs/bug613825.c-expected b/tests/structs/bug613825.c-expected new file mode 100644 index 000000000..d70336d3e --- /dev/null +++ b/tests/structs/bug613825.c-expected @@ -0,0 +1,89 @@ +/* structs_bug613825.c generated by valac, the Vala compiler + * generated from structs_bug613825.vala, do not modify */ + +#include <glib-object.h> +#include <glib.h> +#include <string.h> + +#if !defined(VALA_EXTERN) +#if defined(_MSC_VER) +#define VALA_EXTERN __declspec(dllexport) extern +#elif __GNUC__ >= 4 +#define VALA_EXTERN __attribute__((visibility("default"))) extern +#else +#define VALA_EXTERN extern +#endif +#endif + +#define TYPE_FOO (foo_get_type ()) +typedef struct _Foo Foo; +#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); +#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } +#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } +#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); + +struct _Foo { + gint i; +}; + +VALA_EXTERN GType foo_get_type (void) G_GNUC_CONST ; +VALA_EXTERN Foo* foo_dup (const Foo* self); +VALA_EXTERN void foo_free (Foo* self); +static void _vala_main (void); + +Foo* +foo_dup (const Foo* self) +{ + Foo* dup; + dup = g_new0 (Foo, 1); + memcpy (dup, self, sizeof (Foo)); + return dup; +} + +void +foo_free (Foo* self) +{ + g_free (self); +} + +static GType +foo_get_type_once (void) +{ + GType foo_type_id; + foo_type_id = g_boxed_type_register_static ("Foo", (GBoxedCopyFunc) foo_dup, (GBoxedFreeFunc) foo_free); + return foo_type_id; +} + +GType +foo_get_type (void) +{ + static volatile gsize foo_type_id__volatile = 0; + if (g_once_init_enter (&foo_type_id__volatile)) { + GType foo_type_id; + foo_type_id = foo_get_type_once (); + g_once_init_leave (&foo_type_id__volatile, foo_type_id); + } + return foo_type_id__volatile; +} + +static void +_vala_main (void) +{ + Foo foo = {0}; + Foo _tmp0_ = {0}; + Foo _tmp1_; + memset (&_tmp0_, 0, sizeof (Foo)); + _tmp0_.i = 42; + foo = _tmp0_; + _tmp1_ = foo; + _vala_assert (_tmp1_.i == 42, "foo.i == 42"); +} + +int +main (int argc, + char ** argv) +{ + _vala_main (); + return 0; +} + |