Mercurial > hg > CbC > CbC_llvm
comparison clang/test/Index/ctor-init-source-loc.cpp @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: c-index-test -test-load-source all %s -fno-delayed-template-parsing | FileCheck %s | |
2 template<typename MyBase> | |
3 struct Derived: MyBase::InnerIterator | |
4 { | |
5 Derived() : MyBase::InnerIterator() {} | |
6 // CHECK: TypeRef=MyBase:2:19 Extent=[5:17 - 5:23] | |
7 }; | |
8 | |
9 template<typename MyBase> | |
10 struct Derived2: MyBase::Deeper::InnerIterator | |
11 { | |
12 Derived2() : MyBase::Deeper::InnerIterator() {} | |
13 // CHECK: TypeRef=MyBase:9:19 Extent=[12:18 - 12:24] | |
14 }; | |
15 | |
16 template<typename Q> | |
17 struct Templ; | |
18 | |
19 template<typename MyBase> | |
20 struct Derived3: Templ<MyBase>::InnerIterator | |
21 { | |
22 Derived3() : Templ<MyBase>::InnerIterator() {} | |
23 // CHECK: TemplateRef=Templ:17:8 Extent=[22:18 - 22:23] | |
24 // CHECK: TypeRef=MyBase:19:19 Extent=[22:24 - 22:30] | |
25 }; | |
26 | |
27 | |
28 struct Outer { | |
29 template <typename Q> | |
30 struct Inner { | |
31 typedef Q Parm; | |
32 }; | |
33 }; | |
34 | |
35 template<typename Q> | |
36 struct Derived4: Outer::Inner<Q>::Parm | |
37 { | |
38 Derived4() : Outer::Inner<Q>::Parm() {} | |
39 // CHECK: TypeRef=struct Outer:28:8 Extent=[38:18 - 38:23] | |
40 // CHECK: TemplateRef=Inner:30:12 Extent=[38:25 - 38:30] | |
41 // CHECK: TypeRef=Q:35:19 Extent=[38:31 - 38:32] | |
42 }; | |
43 | |
44 template<typename Q> | |
45 struct Derived5: Outer::Inner<Q>::Parm::InnerIterator | |
46 { | |
47 Derived5() : Outer::Inner<Q>::Parm::InnerIterator() {} | |
48 // CHECK: TypeRef=struct Outer:28:8 Extent=[47:18 - 47:23] | |
49 // CHECK: TemplateRef=Inner:30:12 Extent=[47:25 - 47:30] | |
50 // CHECK: TypeRef=Q:44:19 Extent=[47:31 - 47:32] | |
51 }; | |
52 | |
53 template<typename Q> | |
54 struct Derived6: Outer::Inner<Q> | |
55 { | |
56 Derived6() : Outer::Inner<Q>() {} | |
57 // CHECK: TypeRef=struct Outer:28:8 Extent=[56:18 - 56:23] | |
58 // CHECK: TemplateRef=Inner:30:12 Extent=[56:25 - 56:30] | |
59 // CHECK: TypeRef=Q:53:19 Extent=[56:31 - 56:32] | |
60 }; | |
61 | |
62 struct Base {}; | |
63 | |
64 struct Derived7: Outer::Inner<Base>::Parm | |
65 { | |
66 Derived7() : Outer::Inner<Base>::Parm() {} | |
67 // CHECK: TypeRef=struct Outer:28:8 Extent=[66:18 - 66:23] | |
68 // CHECK: TemplateRef=Inner:30:12 Extent=[66:25 - 66:30] | |
69 // CHECK: TypeRef=struct Base:62:8 Extent=[66:31 - 66:35] | |
70 }; | |
71 | |
72 struct Derived8: Outer::Inner<Base> | |
73 { | |
74 Derived8() : Outer::Inner<Base>() {} | |
75 // CHECK: TypeRef=struct Outer:28:8 Extent=[74:18 - 74:23] | |
76 // CHECK: TemplateRef=Inner:30:12 Extent=[74:25 - 74:30] | |
77 // CHECK: TypeRef=struct Base:62:8 Extent=[74:31 - 74:35] | |
78 }; | |
79 | |
80 namespace Namespace { | |
81 template<typename Q> struct Templ; | |
82 | |
83 struct Outer { | |
84 template <typename Q> | |
85 struct Inner { | |
86 typedef Q Parm; | |
87 }; | |
88 }; | |
89 } | |
90 | |
91 template<typename MyBase> | |
92 struct Derived9: Namespace::Templ<MyBase>::InnerIterator | |
93 { | |
94 Derived9() : Namespace::Templ<MyBase>::InnerIterator() {} | |
95 // CHECK: NamespaceRef=Namespace:80:11 Extent=[94:18 - 94:27] | |
96 // CHECK: TemplateRef=Templ:81:33 Extent=[94:29 - 94:34] | |
97 // CHECK: TypeRef=MyBase:91:19 Extent=[94:35 - 94:41] | |
98 }; | |
99 | |
100 template<typename MyBase> | |
101 struct Derived10: Namespace::Templ<MyBase> | |
102 { | |
103 Derived10() : Namespace::Templ<MyBase>() {} | |
104 // CHECK: NamespaceRef=Namespace:80:11 Extent=[103:19 - 103:28] | |
105 // CHECK: TemplateRef=Templ:81:33 Extent=[103:30 - 103:35] | |
106 // CHECK: TypeRef=MyBase:100:19 Extent=[103:36 - 103:42] | |
107 }; | |
108 | |
109 template<typename MyBase> | |
110 struct Derived11: Namespace::Outer::Inner<MyBase>::Parm | |
111 { | |
112 Derived11() : Namespace::Outer::Inner<MyBase>::Parm() {} | |
113 // CHECK: NamespaceRef=Namespace:80:11 Extent=[112:19 - 112:28] | |
114 // CHECK: TypeRef=struct Namespace::Outer:83:12 Extent=[112:30 - 112:35] | |
115 // CHECK: TemplateRef=Inner:85:16 Extent=[112:37 - 112:42] | |
116 // CHECK: TypeRef=MyBase:109:19 Extent=[112:43 - 112:49] | |
117 }; |