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

#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 _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 test_parameter (gint parameter);
static void _vala_main (void);

void
test_parameter (gint parameter)
{
	{
		gint res = 0;
		gint _tmp0_;
		gint _tmp1_;
		parameter = 1;
		_tmp0_ = parameter;
		_tmp1_ = parameter;
		parameter = _tmp1_ + 1;
		res = _tmp0_ + _tmp1_;
		_vala_assert (res == 2, "res == 2");
		_vala_assert (parameter == 2, "parameter == 2");
	}
	{
		gint res = 0;
		gint _tmp2_;
		gint _tmp3_;
		parameter = 1;
		_tmp2_ = parameter;
		parameter = _tmp2_ + 1;
		_tmp3_ = parameter;
		res = _tmp2_ + _tmp3_;
		_vala_assert (res == 3, "res == 3");
		_vala_assert (parameter == 2, "parameter == 2");
	}
	{
		gint res = 0;
		gint _tmp4_;
		gint _tmp5_;
		parameter = 1;
		_tmp4_ = parameter;
		parameter = parameter + 1;
		_tmp5_ = parameter;
		res = _tmp4_ + _tmp5_;
		_vala_assert (res == 3, "res == 3");
		_vala_assert (parameter == 2, "parameter == 2");
	}
	{
		gint res = 0;
		gint _tmp6_;
		gint _tmp7_;
		parameter = 1;
		parameter = parameter + 1;
		_tmp6_ = parameter;
		_tmp7_ = parameter;
		res = _tmp6_ + _tmp7_;
		_vala_assert (res == 4, "res == 4");
		_vala_assert (parameter == 2, "parameter == 2");
	}
	{
		gint _tmp8_;
		parameter = 1;
		_tmp8_ = parameter;
		parameter = _tmp8_ + 1;
		_vala_assert (_tmp8_ == 1, "parameter++ == 1");
		_vala_assert (parameter == 2, "parameter == 2");
	}
	{
		gint _tmp9_;
		parameter = 1;
		parameter = parameter + 1;
		_tmp9_ = parameter;
		_vala_assert (_tmp9_ == 2, "++parameter == 2");
		_vala_assert (parameter == 2, "parameter == 2");
	}
	{
		gint res = 0;
		gint _tmp10_;
		gint _tmp11_;
		parameter = 1;
		_tmp10_ = parameter;
		_tmp11_ = parameter;
		parameter = _tmp11_ - 1;
		res = _tmp10_ + _tmp11_;
		_vala_assert (res == 2, "res == 2");
		_vala_assert (parameter == 0, "parameter == 0");
	}
	{
		gint res = 0;
		gint _tmp12_;
		gint _tmp13_;
		parameter = 1;
		_tmp12_ = parameter;
		parameter = _tmp12_ - 1;
		_tmp13_ = parameter;
		res = _tmp12_ + _tmp13_;
		_vala_assert (res == 1, "res == 1");
		_vala_assert (parameter == 0, "parameter == 0");
	}
	{
		gint res = 0;
		gint _tmp14_;
		gint _tmp15_;
		parameter = 1;
		_tmp14_ = parameter;
		parameter = parameter - 1;
		_tmp15_ = parameter;
		res = _tmp14_ + _tmp15_;
		_vala_assert (res == 1, "res == 1");
		_vala_assert (parameter == 0, "parameter == 0");
	}
	{
		gint res = 0;
		gint _tmp16_;
		gint _tmp17_;
		parameter = 1;
		parameter = parameter - 1;
		_tmp16_ = parameter;
		_tmp17_ = parameter;
		res = _tmp16_ + _tmp17_;
		_vala_assert (res == 0, "res == 0");
		_vala_assert (parameter == 0, "parameter == 0");
	}
	{
		gint _tmp18_;
		parameter = 1;
		_tmp18_ = parameter;
		parameter = _tmp18_ - 1;
		_vala_assert (_tmp18_ == 1, "parameter-- == 1");
		_vala_assert (parameter == 0, "parameter == 0");
	}
	{
		gint _tmp19_;
		parameter = 1;
		parameter = parameter - 1;
		_tmp19_ = parameter;
		_vala_assert (_tmp19_ == 0, "--parameter == 0");
		_vala_assert (parameter == 0, "parameter == 0");
	}
}

static void
_vala_main (void)
{
	test_parameter (1);
}

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

