1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -emit-llvm %s  -o /dev/null
2*f4a2713aSLionel Sambuc 
3*f4a2713aSLionel Sambuc union X;
4*f4a2713aSLionel Sambuc struct Empty {};
5*f4a2713aSLionel Sambuc union F {};
6*f4a2713aSLionel Sambuc union Q { union Q *X; };
7*f4a2713aSLionel Sambuc union X {
8*f4a2713aSLionel Sambuc   char C;
9*f4a2713aSLionel Sambuc   int A, Z;
10*f4a2713aSLionel Sambuc   long long B;
11*f4a2713aSLionel Sambuc   void *b1;
12*f4a2713aSLionel Sambuc   struct { int A; long long Z; } Q;
13*f4a2713aSLionel Sambuc };
14*f4a2713aSLionel Sambuc 
foo(union X A)15*f4a2713aSLionel Sambuc union X foo(union X A) {
16*f4a2713aSLionel Sambuc   A.C = 123;
17*f4a2713aSLionel Sambuc   A.A = 39249;
18*f4a2713aSLionel Sambuc   //A.B = (void*)123040123321;
19*f4a2713aSLionel Sambuc   A.B = 12301230123123LL;
20*f4a2713aSLionel Sambuc   A.Z = 1;
21*f4a2713aSLionel Sambuc   return A;
22*f4a2713aSLionel Sambuc }
23