anonymous-union-member-initializer.cpp revision f1860e5c381a2710fcebe6d55d799c6b25c21041
1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s 2 3struct A { 4 union { 5 int a; 6 void* b; 7 }; 8 9 A() : a(0) { } 10}; 11 12A a; 13 14namespace PR7021 { 15 struct X 16 { 17 union { long l; }; 18 }; 19 20 // CHECK: define void @_ZN6PR70211fENS_1XES0_ 21 void f(X x, X z) { 22 X x1; 23 24 // CHECK: store i64 1, i64 25 x1.l = 1; 26 27 // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64 28 X x2(x1); 29 30 X x3; 31 // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64 32 x3 = x1; 33 34 // CHECK: ret void 35 } 36} 37 38namespace test2 { 39 struct A { 40 struct { 41 union { 42 int b; 43 }; 44 }; 45 46 A(); 47 }; 48 49 A::A() : b(10) { } 50 // CHECK: define void @_ZN5test21AC2Ev( 51 // CHECK-NOT: } 52 // CHECK: store i32 10 53 // CHECK: } 54} 55