Home | History | Annotate | Download | only in CodeGenCXX
      1 // RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
      2 
      3 // CHECK: @_ZTVZ1GvE1C = {{.*}} @_ZTIZ1GvE1C {{.*}} @_ZZ1GvENK1C1FEv
      4 // CHECK: @_ZTIZ1GvE1C = {{.*}} @_ZTSZ1GvE1C
      5 // CHECK: @_ZTVZ1GvE1C_0 = {{.*}} @_ZTIZ1GvE1C_0 {{.*}} @_ZZ1GvENK1C1FE_0v
      6 // CHECK: @_ZTIZ1GvE1C_0 = {{.*}} @_ZTSZ1GvE1C_0
      7 // CHECK: @_ZTVZ1GvE1C_1 = {{.*}} @_ZTIZ1GvE1C_1 {{.*}} @_ZZ1GvENK1C1FE_1v
      8 // CHECK: @_ZTIZ1GvE1C_1 = {{.*}} @_ZTSZ1GvE1C_1
      9 // CHECK: @_ZTVZN1J1KEvE1C = {{.*}} @_ZTIZN1J1KEvE1C {{.*}} @_ZZN1J1KEvENK1C1FEv
     10 // CHECK: @_ZTIZN1J1KEvE1C = {{.*}} @_ZTSZN1J1KEvE1C
     11 
     12 // CHECK: define {{.*}} @_ZZ1GvEN1CC2Ev(
     13 // CHECK: define {{.*}} @_ZZ1GvENK1C1FEv(
     14 // CHECK: define {{.*}} @_ZZ1GvEN1CC2E_0v(
     15 // CHECK: define {{.*}} @_ZZ1GvENK1C1FE_0v(
     16 // CHECK: define {{.*}} @_ZZ1GvENK1C1GE_0v(
     17 // CHECK: define {{.*}} @_ZZ1GvEN1CC2E_1v(
     18 // CHECK: define {{.*}} @_ZZ1GvENK1C1FE_1v(
     19 // CHECK: define {{.*}} @_ZZ1GvENK1C1HE_1v(
     20 // CHECK: define {{.*}} @_ZZN1J1KEvEN1CC2Ev(
     21 // CHECK: define {{.*}} @_ZZN1J1KEvENK1C1FEv(
     22 
     23 struct I {
     24   virtual void F() const = 0;
     25 };
     26 
     27 void Go(const I &i);
     28 
     29 void G() {
     30   {
     31     struct C : I {
     32       void F() const {}
     33     };
     34     Go(C());
     35   }
     36   {
     37     struct C : I {
     38       void F() const { G(); }
     39       void G() const {}
     40     };
     41     Go(C());
     42   }
     43   {
     44     struct C : I {
     45       void F() const { H(); }
     46       void H() const {}
     47     };
     48     Go(C());
     49   }
     50 }
     51 
     52 struct J {
     53   void K();
     54 };
     55 
     56 void J::K() {
     57   struct C : I {
     58     void F() const {}
     59   };
     60   Go(C());
     61 }
     62