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