85 lines · cpp
1// RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin9 -o - %s | FileCheck %s2 3struct C {4 void f();5 void g(int, ...);6};7 8// CHECK-LABEL: define{{.*}} void @_ZN1C1fEv9void C::f() {10}11 12// CHECK-LABEL: define{{.*}} void @_Z5test1v13void test1() {14 C c;15 16 // CHECK: call void @_ZN1C1fEv17 c.f();18 19 // CHECK: call void (ptr, i32, ...) @_ZN1C1gEiz20 c.g(1, 2, 3);21}22 23 24struct S {25 inline S() { }26 inline ~S() { }27 28 void f_inline1() { }29 inline void f_inline2() { }30 31 static void g() { }32 static void f();33 34 virtual void v() {}35};36 37// CHECK-LABEL: define{{.*}} void @_ZN1S1fEv38void S::f() {39}40 41void test2() {42 S s;43 44 s.f_inline1();45 s.f_inline2();46 47 S::g();48}49 50// S::S()51// CHECK: define linkonce_odr void @_ZN1SC1Ev{{.*}} unnamed_addr52 53// S::f_inline1()54// CHECK-LABEL: define linkonce_odr void @_ZN1S9f_inline1Ev55 56// S::f_inline2()57// CHECK-LABEL: define linkonce_odr void @_ZN1S9f_inline2Ev58 59// S::g()60// CHECK-LABEL: define linkonce_odr void @_ZN1S1gEv61 62// S::~S()63// CHECK: define linkonce_odr void @_ZN1SD1Ev{{.*}} unnamed_addr64 65struct T {66 T operator+(const T&);67};68 69// CHECK-LABEL: define{{.*}} void @_Z5test3v70void test3() {71 T t1, t2;72 73 // CHECK: call void @_ZN1TplERKS_74 T result = t1 + t2;75}76 77// S::S()78// CHECK: define linkonce_odr void @_ZN1SC2Ev{{.*}} unnamed_addr79 80// S::v()81// CHECK: define linkonce_odr void @_ZN1S1vEv{{.*}}unnamed_addr82 83// S::~S()84// CHECK: define linkonce_odr void @_ZN1SD2Ev{{.*}} unnamed_addr85