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

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

#define FOO "foo"
#define BAR "bar"
#define MANAM "manam"
#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* foo (void);
VALA_EXTERN gchar* get_bar (void);
VALA_EXTERN gchar* bar (void);
static void _vala_main (void);

gchar*
foo (void)
{
	gchar* foo = NULL;
	gchar* _tmp0_;
	const gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	static GQuark _tmp2_label2 = 0;
	static GQuark _tmp2_label3 = 0;
	gchar* result;
	_tmp0_ = g_strdup ("foo");
	foo = _tmp0_;
	_tmp1_ = foo;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string (FOO)))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if ((_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string (BAR)))) || (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string (MANAM))))) {
		switch (0) {
			default:
			{
				g_assert_not_reached ();
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("minim")))) {
		switch (0) {
			default:
			{
				g_assert_not_reached ();
			}
		}
	}
	result = foo;
	return result;
}

gchar*
get_bar (void)
{
	gchar* _tmp0_;
	gchar* result;
	_tmp0_ = g_strdup ("bar");
	result = _tmp0_;
	return result;
}

gchar*
bar (void)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	static GQuark _tmp2_label2 = 0;
	gchar* _tmp4_;
	gchar* result;
	_tmp0_ = get_bar ();
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	g_free (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string (BAR)))) {
		switch (0) {
			default:
			{
				break;
			}
		}
	} else if ((_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string (FOO)))) || (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("minim"))))) {
		switch (0) {
			default:
			{
				g_assert_not_reached ();
			}
		}
	} else {
		switch (0) {
			default:
			{
				g_assert_not_reached ();
			}
		}
	}
	_tmp4_ = g_strdup (BAR);
	result = _tmp4_;
	return result;
}

static void
_vala_main (void)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	_tmp0_ = foo ();
	_tmp1_ = _tmp0_;
	_vala_assert (g_strcmp0 (_tmp1_, "foo") == 0, "foo () == \"foo\"");
	_g_free0 (_tmp1_);
	_tmp2_ = bar ();
	_tmp3_ = _tmp2_;
	_vala_assert (g_strcmp0 (_tmp3_, "bar") == 0, "bar () == \"bar\"");
	_g_free0 (_tmp3_);
}

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

