diff options
Diffstat (limited to 'tests/methods')
-rw-r--r-- | tests/methods/bug620673-2.test (renamed from tests/methods/bug620673.test) | 0 | ||||
-rw-r--r-- | tests/methods/bug620673.c-expected | 68 |
2 files changed, 68 insertions, 0 deletions
diff --git a/tests/methods/bug620673.test b/tests/methods/bug620673-2.test index 26fbcbd5b..26fbcbd5b 100644 --- a/tests/methods/bug620673.test +++ b/tests/methods/bug620673-2.test diff --git a/tests/methods/bug620673.c-expected b/tests/methods/bug620673.c-expected new file mode 100644 index 000000000..248cfcef0 --- /dev/null +++ b/tests/methods/bug620673.c-expected @@ -0,0 +1,68 @@ +/* methods_bug620673.c generated by valac, the Vala compiler + * generated from methods_bug620673.vala, do not modify */ + +#include <glib.h> +#include <stdarg.h> +#include <float.h> +#include <math.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 _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); + +VALA_EXTERN void foo (gint bar, + GError** error, + ...); +static void _vala_main (void); + +void +foo (gint bar, + GError** error, + ...) +{ + va_list args = {0}; + gint arg = 0; + gint64 arg2 = 0LL; + gdouble arg3 = 0.0; + _vala_assert (bar == 42, "bar == 42"); + va_start (args, error); + arg = va_arg (args, gint); + arg2 = va_arg (args, gint64); + arg3 = va_arg (args, gdouble); + _vala_assert (arg == 23, "arg == 23"); + _vala_assert (arg2 == 4711LL, "arg2 == 4711LL"); + _vala_assert (arg3 == 3.1415, "arg3 == 3.1415"); + va_end (args); +} + +static void +_vala_main (void) +{ + GError* _inner_error0_ = NULL; + foo (42, &_inner_error0_, 23, 4711LL, 3.1415, NULL); + if (G_UNLIKELY (_inner_error0_ != NULL)) { + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); + g_clear_error (&_inner_error0_); + return; + } +} + +int +main (int argc, + char ** argv) +{ + _vala_main (); + return 0; +} + |