view gcc/testsuite/g++.old-deja/g++.brendan/code-gen1.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do run  }
// 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" int printf (const 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 1; }

	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;
}