// GROUPS passed code-generation
// Check that sub-word sized structs/classes are passed correctly
// if the struct/class has a constructor (i.e. ANY constructor).

extern "C" void printf (char *, ...); 

struct base {
	unsigned int f1 : 8;
	unsigned int f2 : 8;

	base (int ii)
	{
	}
};

base global_base (7);

int test2 (base formal_base);

int main ()
{
	global_base.f1 = 0x55;
	global_base.f2 = 0xee;

	if (test2 (global_base) == 0)
	  printf ("PASS\n");
	else
	  printf ("FAIL\n");

	return 0;
}

int test2 (base formal_base)
{
	if (formal_base.f1 != global_base.f1)
		return -1;
	if (formal_base.f2 != global_base.f2)
		return -1;
	return 0;
}
