xref: /aosp_15_r20/external/clang/test/CodeGen/2002-07-30-UnionTest.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm %s  -o /dev/null
2*67e74705SXin Li 
3*67e74705SXin Li union X;
4*67e74705SXin Li struct Empty {};
5*67e74705SXin Li union F {};
6*67e74705SXin Li union Q { union Q *X; };
7*67e74705SXin Li union X {
8*67e74705SXin Li   char C;
9*67e74705SXin Li   int A, Z;
10*67e74705SXin Li   long long B;
11*67e74705SXin Li   void *b1;
12*67e74705SXin Li   struct { int A; long long Z; } Q;
13*67e74705SXin Li };
14*67e74705SXin Li 
foo(union X A)15*67e74705SXin Li union X foo(union X A) {
16*67e74705SXin Li   A.C = 123;
17*67e74705SXin Li   A.A = 39249;
18*67e74705SXin Li   //A.B = (void*)123040123321;
19*67e74705SXin Li   A.B = 12301230123123LL;
20*67e74705SXin Li   A.Z = 1;
21*67e74705SXin Li   return A;
22*67e74705SXin Li }
23