/* test.c generated by valac 0.20.1.54-e2cf5, the Vala compiler
 * generated from test.vala, do not modify */


#include <glib.h>
#include <glib-object.h>
#include <gee.h>

typedef struct _Block1Data Block1Data;
typedef struct _Block2Data Block2Data;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

struct _Block1Data {
	guint64 g;
};

struct _Block2Data {
	Block1Data * __restrict__ _data1_;
	gint j;
};



gint _vala_main (void);
static gboolean _____lambda2_ (Block2Data* _data2_);
static gboolean ______lambda2__gee_forall_func (gpointer g, gpointer self);


static gboolean _____lambda2_ (Block2Data* _data2_) {
	Block1Data* __restrict__ _data1_;
	gboolean result = FALSE;
	guint64 _tmp0_ = 0ULL;
	gint _tmp1_ = 0;
	_data1_ = _data2_->_data1_;
	_tmp0_ = _data1_->g;
	_tmp1_ = _data2_->j;
	_data1_->g = _tmp0_ + _tmp1_;
	result = TRUE;
	return result;
}


static gboolean ______lambda2__gee_forall_func (gpointer g, gpointer self) {
	gboolean result;
	result = _____lambda2_ (self);
	return result;
}


gint _vala_main (void) {
	gint result = 0;
	Block1Data _data1_stack_;
	Block1Data* __restrict__ _data1_;
	guint64 f = 0ULL;
	GeeList* list = NULL;
	GeeArrayList* _tmp0_ = NULL;
	guint64 _tmp14_ = 0ULL;
	_data1_ = &_data1_stack_;
	f = (guint64) 0;
	_data1_->g = (guint64) 0;
	_tmp0_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL);
	list = (GeeList*) _tmp0_;
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp1_ = FALSE;
			_tmp1_ = TRUE;
			while (TRUE) {
				Block2Data _data2_stack_;
				Block2Data* __restrict__ _data2_;
				gboolean _tmp2_ = FALSE;
				gint _tmp4_ = 0;
				gint _tmp5_ = 0;
				gint _tmp6_ = 0;
				GeeList* _tmp7_ = NULL;
				_data2_ = &_data2_stack_;
				_data2_->_data1_ = _data1_;
				_tmp2_ = _tmp1_;
				if (!_tmp2_) {
					gint _tmp3_ = 0;
					_tmp3_ = i;
					i = _tmp3_ + 1;
				}
				_tmp1_ = FALSE;
				_tmp4_ = i;
				if (!(_tmp4_ < 0xFFFFF)) {
					_data2_ = NULL;
					break;
				}
				_tmp5_ = i;
				_tmp6_ = i;
				_data2_->j = _tmp5_ * _tmp6_;
				_tmp7_ = list;
				gee_traversable_foreach ((GeeTraversable*) _tmp7_, ______lambda2__gee_forall_func, _data2_);
				_data2_ = NULL;
			}
		}
	}
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp8_ = FALSE;
			_tmp8_ = TRUE;
			while (TRUE) {
				gboolean _tmp9_ = FALSE;
				gint _tmp11_ = 0;
				guint64 _tmp12_ = 0ULL;
				guint64 _tmp13_ = 0ULL;
				_tmp9_ = _tmp8_;
				if (!_tmp9_) {
					gint _tmp10_ = 0;
					_tmp10_ = i;
					i = _tmp10_ + 1;
				}
				_tmp8_ = FALSE;
				_tmp11_ = i;
				if (!(_tmp11_ < 0xFFFFF)) {
					break;
				}
				test_dummy ();
				_tmp12_ = f;
				_tmp13_ = _data1_->g;
				f = _tmp12_ + _tmp13_;
			}
		}
	}
	_tmp14_ = f;
	test_devnull (_tmp14_);
	result = 0;
	_g_object_unref0 (list);
	_data1_ = NULL;
	return result;
}


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



