struct s {int x;};

struct s f1();
struct s *f2();

void g() {
	int y;

	y = f1().x;
	y = f2()->x;
}

// section 6.5.2.3
union {
	struct {
		int type;
	} n;
	struct {
		int type;
		int intnode;
	} ni;
	struct {
		int type;
		double doublenode;
	} nf;
} u;

void h() {
	u.nf.type = 1;
	u.nf.doublenode = 3.14;
	if (u.n.type == 1)
		;
}

