brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 562a5e5 Raw
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