brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 5daf0c0 Raw
82 lines · cpp
1// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s2 3// CHECK: @_ZTVZZ1HvEN1S1IEvE1S = 4 5// CHECK: define {{.*}} @_Z2L1v(6// CHECK: define {{.*}} @_ZZ2L1vEN1S2L2Ev(7// CHECK: define {{.*}} @_ZZ2L1vEN1S2L2E_0v(8// CHECK: define {{.*}} @_ZZ1FvEN1S1T1S1T1GEv(9// CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2EvEN1S3L3aEv(10// CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2EvEN1S3L3bE_0v(11// CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2E_0vEN1S3L3cEv(12// CHECK: define {{.*}} @_ZZZ2L1vEN1S2L2E_0vEN1S3L3dE_0v(13 14void L1() {15  {16    struct S {17      void L2() {18        {19          struct S {20            void L3a() {}21          };22          S().L3a();23        }24        {25          struct S {26            void L3b() {}27          };28          S().L3b();29        }30      }31    };32    S().L2();33  }34  {35    struct S {36      void L2() {37        {38          struct S {39            void L3c() {}40          };41          S().L3c();42        }43        {44          struct S {45            void L3d() {}46          };47          S().L3d();48        }49      }50    };51    S().L2();52  }53}54 55void F() {56  struct S {57    struct T {58      struct S {59        struct T {60          void G() {}61        };62      };63    };64  };65  S::T::S::T().G();66}67 68struct B { virtual void Foo() = 0; };69void G(const B &);70 71void H() {72  struct S {73    void I() {74      struct S : B {75        virtual void Foo() {}76      };77      G(S());78    }79  };80  S().I();81}82