blob: bd816a4a44de45599cb83bc401c7d70ab04fb132 [file] [log] [blame]
Douglas Gregorfe60f842010-05-03 15:18:25 +00001// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s
Anders Carlssonc186b8f2009-09-02 21:14:47 +00002
3struct A {
4 union {
5 int a;
6 void* b;
7 };
8
9 A() : a(0) { }
10};
11
12A a;
Douglas Gregorfe60f842010-05-03 15:18:25 +000013
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}
John McCallf1860e52010-05-20 23:23:51 +000037
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}