void printf (string fmt, ...) = #0;
void *obj_malloc (int size) = #0;

typedef struct {
	int         val;
	int         cap;
	int         ofs;
	int         res;
} valstruct_t;

int
saveval (int val)
{
	//printf ("%d\n", val);
	return val;
}

void
test (valstruct_t *v)
{
	if (v.val == v.cap) {
		v.val += v.ofs;
		v.res = saveval (v.val * @sizeof (int));
	}
}

int
main ()
{
	valstruct_t *vs;

	vs = obj_malloc (@sizeof (valstruct_t));
	vs.val = 1;
	vs.cap = 1;
	vs.ofs = 2;
	//printf ("before: %d\nafter: ", vs.val);
	test (vs);
	if (vs.val != vs.res)
		printf ("val vs res: %d %d\n", vs.val, vs.res);
	return vs.val != vs.res;
}