/* methods_varargs_struct.c generated by valac, the Vala compiler * generated from methods_varargs_struct.vala, do not modify */ #include #include #include #if !defined(VALA_EXTERN) #if defined(_WIN32) || defined(__CYGWIN__) #define VALA_EXTERN __declspec(dllexport) extern #elif __GNUC__ >= 4 #define VALA_EXTERN __attribute__((visibility("default"))) extern #else #define VALA_EXTERN extern #endif #endif typedef struct _Bar Bar; #define _bar_free0(var) ((var == NULL) ? NULL : (var = (bar_free (var), NULL))) #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 _Bar { gint i; gint j; }; VALA_EXTERN Bar* bar_dup (const Bar* self); VALA_EXTERN void bar_free (Bar* self); VALA_EXTERN void foo (gint first_arg, ...); VALA_EXTERN void faz (gint first_arg, ...); VALA_EXTERN void fab (gint first_arg, ...); static void _vala_main (void); Bar* bar_dup (const Bar* self) { Bar* dup; dup = g_new0 (Bar, 1); memcpy (dup, self, sizeof (Bar)); return dup; } void bar_free (Bar* self) { g_free (self); } void foo (gint first_arg, ...) { va_list args = {0}; Bar bar = {0}; Bar _tmp0_; Bar _tmp1_; va_start (args, first_arg); bar = *(va_arg (args, Bar*)); _vala_assert (first_arg == 42, "first_arg == 42"); _tmp0_ = bar; _vala_assert (_tmp0_.i == 23, "bar.i == 23"); _tmp1_ = bar; _vala_assert (_tmp1_.j == 4711, "bar.j == 4711"); va_end (args); } void faz (gint first_arg, ...) { va_list args = {0}; Bar* bar = NULL; Bar* _tmp0_; va_start (args, first_arg); _tmp0_ = va_arg (args, Bar*); bar = _tmp0_; _vala_assert (first_arg == 23, "first_arg == 23"); _vala_assert ((*bar).i == 23, "bar.i == 23"); _vala_assert ((*bar).j == 4711, "bar.j == 4711"); va_end (args); } static gpointer _bar_dup0 (gpointer self) { return self ? bar_dup (self) : NULL; } void fab (gint first_arg, ...) { va_list args = {0}; Bar* bar = NULL; Bar* _tmp0_; va_start (args, first_arg); _tmp0_ = _bar_dup0 (va_arg (args, Bar*)); bar = _tmp0_; _vala_assert (first_arg == 65, "first_arg == 65"); _vala_assert ((*bar).i == 23, "bar.i == 23"); _vala_assert ((*bar).j == 4711, "bar.j == 4711"); _bar_free0 (bar); va_end (args); } static void _vala_main (void) { Bar bar = {0}; Bar _tmp0_ = {0}; Bar _tmp1_; Bar _tmp2_; Bar _tmp3_; _tmp0_.i = 23; _tmp0_.j = 4711; bar = _tmp0_; _tmp1_ = bar; foo (42, &_tmp1_, NULL); _tmp2_ = bar; faz (23, &_tmp2_, NULL); _tmp3_ = bar; fab (65, &_tmp3_, NULL); } int main (int argc, char ** argv) { _vala_main (); return 0; }