/* control_flow_bug639482.c generated by valac, the Vala compiler
 * generated from control_flow_bug639482.vala, do not modify */

#include <stdlib.h>
#include <string.h>
#include <glib.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#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 _g_free0(var) (var = (g_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);

VALA_EXTERN gchar* test (GError** error);
static void _vala_main (void);

gchar*
test (GError** error)
{
	gchar* _tmp0_;
	gchar* result;
	_tmp0_ = g_strdup ("foo");
	result = _tmp0_;
	return result;
}

static void
_vala_main (void)
{
	gchar* empty = NULL;
	const gchar* _tmp0_ = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_;
	gchar* foo = NULL;
	gchar* _tmp6_;
	const gchar* _tmp7_;
	gchar* _tmp8_ = NULL;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp12_;
	const gchar* _tmp13_;
	GError* _inner_error0_ = NULL;
	empty = NULL;
	if (FALSE) {
		_tmp0_ = "A";
	} else {
		const gchar* _tmp1_ = NULL;
		const gchar* _tmp2_;
		_tmp2_ = empty;
		_tmp1_ = _tmp2_;
		if (_tmp1_ == NULL) {
			_tmp1_ = "B";
		}
		_tmp0_ = _tmp1_;
	}
	_vala_assert (g_strcmp0 (_tmp0_, "B") == 0, "(false ? \"A\" : (empty ?? \"B\")) == \"B\"");
	_tmp4_ = g_strdup ("bar");
	_tmp3_ = _tmp4_;
	if (_tmp3_ == NULL) {
		gchar* _tmp5_;
		_tmp5_ = test (&_inner_error0_);
		_g_free0 (_tmp3_);
		_tmp3_ = _tmp5_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_free0 (_tmp3_);
			_g_free0 (empty);
			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;
		}
	}
	_tmp6_ = _tmp3_;
	_tmp3_ = NULL;
	foo = _tmp6_;
	_tmp7_ = foo;
	_vala_assert (g_strcmp0 (_tmp7_, "bar") == 0, "foo == \"bar\"");
	_tmp9_ = empty;
	_tmp10_ = g_strdup (_tmp9_);
	_tmp8_ = _tmp10_;
	if (_tmp8_ == NULL) {
		gchar* _tmp11_;
		_tmp11_ = test (&_inner_error0_);
		_g_free0 (_tmp8_);
		_tmp8_ = _tmp11_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_free0 (_tmp8_);
			_g_free0 (foo);
			_g_free0 (_tmp3_);
			_g_free0 (empty);
			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;
		}
	}
	_tmp12_ = _tmp8_;
	_tmp8_ = NULL;
	_g_free0 (foo);
	foo = _tmp12_;
	_tmp13_ = foo;
	_vala_assert (g_strcmp0 (_tmp13_, "foo") == 0, "foo == \"foo\"");
	_g_free0 (_tmp8_);
	_g_free0 (foo);
	_g_free0 (_tmp3_);
	_g_free0 (empty);
}

int
main (int argc,
      char ** argv)
{
	_vala_main ();
	return 0;
}

