Home | History | Annotate | Download | only in CodeGenCXX
      1 // RUN: %clang_cc1 -emit-llvm -triple x86_64-apple-darwin9 -o - %s | FileCheck %s
      2 
      3 struct C {
      4   void f();
      5   void g(int, ...);
      6 };
      7 
      8 // CHECK-LABEL: define void @_ZN1C1fEv
      9 void C::f() {
     10 }
     11 
     12 // CHECK-LABEL: define void @_Z5test1v
     13 void test1() {
     14   C c;
     15 
     16   // CHECK: call void @_ZN1C1fEv
     17   c.f();
     18 
     19   // CHECK: call void (%struct.C*, i32, ...) @_ZN1C1gEiz
     20   c.g(1, 2, 3);
     21 }
     22 
     23 
     24 struct 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 @_ZN1S1fEv
     38 void S::f() {
     39 }
     40 
     41 void 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_addr
     52 
     53 // S::f_inline1()
     54 // CHECK-LABEL: define linkonce_odr void @_ZN1S9f_inline1Ev
     55 
     56 // S::f_inline2()
     57 // CHECK-LABEL: define linkonce_odr void @_ZN1S9f_inline2Ev
     58 
     59 // S::g()
     60 // CHECK-LABEL: define linkonce_odr void @_ZN1S1gEv
     61 
     62 // S::~S()
     63 // CHECK: define linkonce_odr void @_ZN1SD1Ev{{.*}} unnamed_addr
     64 
     65 struct T {
     66   T operator+(const T&);
     67 };
     68 
     69 // CHECK-LABEL: define void @_Z5test3v
     70 void 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_addr
     79 
     80 // S::v()
     81 // CHECK: define linkonce_odr void @_ZN1S1vEv{{.*}}unnamed_addr
     82 
     83 // S::~S()
     84 // CHECK: define linkonce_odr void @_ZN1SD2Ev{{.*}} unnamed_addr
     85