blob: a38d5f9eaa2cf613cab4a43db740e9506dcb874b [file] [log] [blame]
Anders Carlsson589f9e32009-11-07 23:16:50 +00001// RUN: clang-cc -emit-llvm %s -o - -triple=x86_64-apple-darwin10 | FileCheck %s
2
3// PR5392
4namespace PR5392 {
5struct A
6{
7 static int a;
8};
9
10A a1;
11void f()
12{
13 // CHECK: store i32 10, i32* @_ZN6PR53921A1aE
14 a1.a = 10;
15 // CHECK: store i32 20, i32* @_ZN6PR53921A1aE
16 A().a = 20;
17}
18
19}
Anders Carlssona1b29a72009-11-23 21:56:41 +000020
21struct A {
Anders Carlssonc1022972009-11-24 16:57:33 +000022 A();
23 ~A();
Anders Carlssona1b29a72009-11-23 21:56:41 +000024 enum E { Foo };
25};
26
Anders Carlssonc1022972009-11-24 16:57:33 +000027A *g();
28
Anders Carlssona1b29a72009-11-23 21:56:41 +000029void f(A *a) {
Anders Carlssonc1022972009-11-24 16:57:33 +000030 A::E e1 = a->Foo;
31
32 // CHECK: call %struct.A* @_Z1gv()
33 A::E e2 = g()->Foo;
34 // CHECK: call void @_ZN1AC1Ev(
35 // CHECK: call void @_ZN1AD1Ev(
36 A::E e3 = A().Foo;
Anders Carlssona1b29a72009-11-23 21:56:41 +000037}
Anders Carlssonc1022972009-11-24 16:57:33 +000038
Eli Friedman9a146302009-11-26 06:08:14 +000039namespace test3 {
40struct A {
41 static int foo();
42};
43int f() {
44 return A().foo();
45}
46}