1 // Note: the run lines follow their respective tests, since line/column
2 // matter in this test.
3 
4 void foo_1();
5 void foo_2(int);
6 void foo_2(void *);
7 void foo_3(int, int);
8 void foo_3(void *, void *);
9 void foo_4(int, int);
10 void foo_4(void *, int);
11 void foo_5(int, int);
12 void foo_5(int, void *);
13 template<class T> void foo_6();
14 template<class T> void foo_7(T);
15 template<class T> void foo_8(T, T);
16 template<class T> void foo_9(int, T);
17 template<class T> void foo_9(void *, T);
18 template<class T> void foo_10(T, int, int);
19 template<class U> void foo_10(U, void *, void *);
20 template<class T, class U> void foo_11(T, U);
21 template<class T = int> void foo_12(T, T);
22 template<class V>
23 struct S {
24   void foo_1();
25   void foo_2(int);
26   void foo_2(void *);
27   void foo_3(int, int);
28   void foo_3(void *, void *);
29   void foo_4(int, int);
30   void foo_4(void *, int);
31   void foo_5(int, int);
32   void foo_5(int, void *);
33   template<class T> void foo_6();
34   template<class T> void foo_7(T);
35   template<class T> void foo_8(T, T);
36   template<class T> void foo_9(int, T);
37   template<class T> void foo_9(void *, T);
38   template<class T> void foo_10(T, int, int);
39   template<class U> void foo_10(U, void *, void *);
40   template<class T, class U> void foo_11(T, U);
41   template<class T = int> void foo_12(T, T);
42   template<class T> void foo_13(V, T, T);
43 };
44 
main()45 int main() {
46   void *p = 0;
47   foo_1();
48   foo_2(42);
49   foo_3(42, 42);
50   foo_3(p, p);
51   foo_4(42, 42);
52   foo_4(p, 42);
53   foo_5(42, 42);
54   foo_6<int>();
55   foo_7(42);
56   foo_7<int>(42);
57   foo_8(42, 42);
58   foo_9(42, 42);
59   foo_9(p, 42);
60   foo_10(42, 42, 42);
61   foo_11(42, 42);
62   foo_11<int>(42, 42);
63   foo_11<int, void *>(42, p);
64   foo_12(p, p);
65 
66   S<int> s;
67   s.foo_1();
68   s.foo_2(42);
69   s.foo_3(42, 42);
70   s.foo_3(p, p);
71   s.foo_4(42, 42);
72   s.foo_4(p, 42);
73   s.foo_5(42, 42);
74   s.foo_6<int>();
75   s.foo_7(42);
76   s.foo_7<int>(42);
77   s.foo_8(42, 42);
78   s.foo_9(42, 42);
79   s.foo_9(p, 42);
80   s.foo_10(42, 42, 42);
81   s.foo_11(42, 42);
82   s.foo_11<int>(42, 42);
83   s.foo_11<int, void *>(42, p);
84   s.foo_12(p, p);
85   s.foo_13(42, 42, 42);
86 
87   foo_1(42,);
88   foo_2(42,);
89   foo_6<int>(42,);
90   foo_7(42,);
91   s.foo_1(42,);
92   s.foo_2(42,);
93   s.foo_6<int>(42,);
94   s.foo_7(42,);
95 }
96 
97 struct Bar {
98   static void foo_1();
99   void foo_1(float);
100   static void foo_1(int);
101 };
102 
test()103 void test() {
104   Bar::foo_1();
105   Bar b;
106   b.foo_1();
107 }
108 
109 struct Bar2 : public Bar {
Bar2Bar2110   Bar2() {
111     Bar::foo_1();
112   }
113 };
114 
115 struct BarTemplates {
foo_1BarTemplates116   static void foo_1() {}
foo_1BarTemplates117   void foo_1(float) {}
foo_1BarTemplates118   static void foo_1(int) {}
119 
120   template<class T1, class T2>
foo_1BarTemplates121   static void foo_1(T1 a, T2 b) { a + b; }
122 
123   template<class T1, class T2>
foo_1BarTemplates124   void foo_1(T1 a, T2 b, float c) { a + b + c; }
125 
126   template<class T1, class T2>
foo_1BarTemplates127   static void foo_1(T2 a, int b, T1 c)  { a + b + c; }
128 };
129 
testTemplates()130 void testTemplates() {
131   BarTemplates::foo_1();
132   BarTemplates b;
133   b.foo_1();
134 }
135 
136 struct Bar2Template : public BarTemplates {
Bar2TemplateBar2Template137   Bar2Template() {
138     BarTemplates::foo_1();
139   }
140 };
141 
142 // RUN: c-index-test -code-completion-at=%s:47:9 %s | FileCheck -check-prefix=CHECK-CC1 %s
143 // CHECK-CC1: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{RightParen )} (1)
144 // CHECK-CC1: Completion contexts:
145 // CHECK-CC1-NEXT: Any type
146 // CHECK-CC1-NEXT: Any value
147 // CHECK-CC1-NEXT: Enum tag
148 // CHECK-CC1-NEXT: Union tag
149 // CHECK-CC1-NEXT: Struct tag
150 // CHECK-CC1-NEXT: Class name
151 // CHECK-CC1-NEXT: Nested name specifier
152 // CHECK-CC1-NEXT: Objective-C interface
153 
154 // RUN: c-index-test -code-completion-at=%s:48:9 %s | FileCheck -check-prefix=CHECK-CC2 %s
155 // CHECK-CC2: OverloadCandidate:{ResultType void}{Text foo_2}{LeftParen (}{CurrentParameter void *}{RightParen )} (1)
156 // CHECK-CC2: OverloadCandidate:{ResultType void}{Text foo_2}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
157 // CHECK-CC2: Completion contexts:
158 // CHECK-CC2-NEXT: Any type
159 // CHECK-CC2-NEXT: Any value
160 // CHECK-CC2-NEXT: Enum tag
161 // CHECK-CC2-NEXT: Union tag
162 // CHECK-CC2-NEXT: Struct tag
163 // CHECK-CC2-NEXT: Class name
164 // CHECK-CC2-NEXT: Nested name specifier
165 // CHECK-CC2-NEXT: Objective-C interface
166 
167 // RUN: c-index-test -code-completion-at=%s:49:9 %s | FileCheck -check-prefix=CHECK-CC3 %s
168 // CHECK-CC3: OverloadCandidate:{ResultType void}{Text foo_3}{LeftParen (}{CurrentParameter void *}{Comma , }{Placeholder void *}{RightParen )} (1)
169 // CHECK-CC3: OverloadCandidate:{ResultType void}{Text foo_3}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder int}{RightParen )} (1)
170 // CHECK-CC3: Completion contexts:
171 // CHECK-CC3-NEXT: Any type
172 // CHECK-CC3-NEXT: Any value
173 // CHECK-CC3-NEXT: Enum tag
174 // CHECK-CC3-NEXT: Union tag
175 // CHECK-CC3-NEXT: Struct tag
176 // CHECK-CC3-NEXT: Class name
177 // CHECK-CC3-NEXT: Nested name specifier
178 // CHECK-CC3-NEXT: Objective-C interface
179 
180 // RUN: c-index-test -code-completion-at=%s:49:12 %s | FileCheck -check-prefix=CHECK-CC4 %s
181 // CHECK-CC4: OverloadCandidate:{ResultType void}{Text foo_3}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
182 // CHECK-CC4: Completion contexts:
183 // CHECK-CC4-NEXT: Any type
184 // CHECK-CC4-NEXT: Any value
185 // CHECK-CC4-NEXT: Enum tag
186 // CHECK-CC4-NEXT: Union tag
187 // CHECK-CC4-NEXT: Struct tag
188 // CHECK-CC4-NEXT: Class name
189 // CHECK-CC4-NEXT: Nested name specifier
190 // CHECK-CC4-NEXT: Objective-C interface
191 
192 // RUN: c-index-test -code-completion-at=%s:50:11 %s | FileCheck -check-prefix=CHECK-CC5 %s
193 // CHECK-CC5: OverloadCandidate:{ResultType void}{Text foo_3}{LeftParen (}{Placeholder void *}{Comma , }{CurrentParameter void *}{RightParen )} (1)
194 // CHECK-CC5: Completion contexts:
195 // CHECK-CC5-NEXT: Any type
196 // CHECK-CC5-NEXT: Any value
197 // CHECK-CC5-NEXT: Enum tag
198 // CHECK-CC5-NEXT: Union tag
199 // CHECK-CC5-NEXT: Struct tag
200 // CHECK-CC5-NEXT: Class name
201 // CHECK-CC5-NEXT: Nested name specifier
202 // CHECK-CC5-NEXT: Objective-C interface
203 
204 // RUN: c-index-test -code-completion-at=%s:51:12 %s | FileCheck -check-prefix=CHECK-CC6 %s
205 // CHECK-CC6: OverloadCandidate:{ResultType void}{Text foo_4}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
206 // CHECK-CC6: Completion contexts:
207 // CHECK-CC6-NEXT: Any type
208 // CHECK-CC6-NEXT: Any value
209 // CHECK-CC6-NEXT: Enum tag
210 // CHECK-CC6-NEXT: Union tag
211 // CHECK-CC6-NEXT: Struct tag
212 // CHECK-CC6-NEXT: Class name
213 // CHECK-CC6-NEXT: Nested name specifier
214 // CHECK-CC6-NEXT: Objective-C interface
215 
216 // RUN: c-index-test -code-completion-at=%s:52:11 %s | FileCheck -check-prefix=CHECK-CC7 %s
217 // CHECK-CC7: OverloadCandidate:{ResultType void}{Text foo_4}{LeftParen (}{Placeholder void *}{Comma , }{CurrentParameter int}{RightParen )} (1)
218 // CHECK-CC7: Completion contexts:
219 // CHECK-CC7-NEXT: Any type
220 // CHECK-CC7-NEXT: Any value
221 // CHECK-CC7-NEXT: Enum tag
222 // CHECK-CC7-NEXT: Union tag
223 // CHECK-CC7-NEXT: Struct tag
224 // CHECK-CC7-NEXT: Class name
225 // CHECK-CC7-NEXT: Nested name specifier
226 // CHECK-CC7-NEXT: Objective-C interface
227 
228 // RUN: c-index-test -code-completion-at=%s:53:12 %s | FileCheck -check-prefix=CHECK-CC8 %s
229 // CHECK-CC8: OverloadCandidate:{ResultType void}{Text foo_5}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter void *}{RightParen )} (1)
230 // CHECK-CC8: OverloadCandidate:{ResultType void}{Text foo_5}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
231 // CHECK-CC8: Completion contexts:
232 // CHECK-CC8-NEXT: Any type
233 // CHECK-CC8-NEXT: Any value
234 // CHECK-CC8-NEXT: Enum tag
235 // CHECK-CC8-NEXT: Union tag
236 // CHECK-CC8-NEXT: Struct tag
237 // CHECK-CC8-NEXT: Class name
238 // CHECK-CC8-NEXT: Nested name specifier
239 // CHECK-CC8-NEXT: Objective-C interface
240 
241 // RUN: c-index-test -code-completion-at=%s:54:14 %s | FileCheck -check-prefix=CHECK-CC9 %s
242 // CHECK-CC9: OverloadCandidate:{ResultType void}{Text foo_6}{LeftParen (}{RightParen )} (1)
243 // CHECK-CC9: Completion contexts:
244 // CHECK-CC9-NEXT: Any type
245 // CHECK-CC9-NEXT: Any value
246 // CHECK-CC9-NEXT: Enum tag
247 // CHECK-CC9-NEXT: Union tag
248 // CHECK-CC9-NEXT: Struct tag
249 // CHECK-CC9-NEXT: Class name
250 // CHECK-CC9-NEXT: Nested name specifier
251 // CHECK-CC9-NEXT: Objective-C interface
252 
253 // RUN: c-index-test -code-completion-at=%s:55:9 %s | FileCheck -check-prefix=CHECK-CC10 %s
254 // CHECK-CC10: OverloadCandidate:{ResultType void}{Text foo_7}{LeftParen (}{CurrentParameter T}{RightParen )} (1)
255 // CHECK-CC10: Completion contexts:
256 // CHECK-CC10-NEXT: Any type
257 // CHECK-CC10-NEXT: Any value
258 // CHECK-CC10-NEXT: Enum tag
259 // CHECK-CC10-NEXT: Union tag
260 // CHECK-CC10-NEXT: Struct tag
261 // CHECK-CC10-NEXT: Class name
262 // CHECK-CC10-NEXT: Nested name specifier
263 // CHECK-CC10-NEXT: Objective-C interface
264 
265 // RUN: c-index-test -code-completion-at=%s:56:14 %s | FileCheck -check-prefix=CHECK-CC11 %s
266 // CHECK-CC11: OverloadCandidate:{ResultType void}{Text foo_7}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
267 // CHECK-CC11: Completion contexts:
268 // CHECK-CC11-NEXT: Any type
269 // CHECK-CC11-NEXT: Any value
270 // CHECK-CC11-NEXT: Enum tag
271 // CHECK-CC11-NEXT: Union tag
272 // CHECK-CC11-NEXT: Struct tag
273 // CHECK-CC11-NEXT: Class name
274 // CHECK-CC11-NEXT: Nested name specifier
275 // CHECK-CC11-NEXT: Objective-C interface
276 
277 // RUN: c-index-test -code-completion-at=%s:57:12 %s | FileCheck -check-prefix=CHECK-CC12 %s
278 // CHECK-CC12: OverloadCandidate:{ResultType void}{Text foo_8}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
279 // CHECK-CC12: Completion contexts:
280 // CHECK-CC12-NEXT: Any type
281 // CHECK-CC12-NEXT: Any value
282 // CHECK-CC12-NEXT: Enum tag
283 // CHECK-CC12-NEXT: Union tag
284 // CHECK-CC12-NEXT: Struct tag
285 // CHECK-CC12-NEXT: Class name
286 // CHECK-CC12-NEXT: Nested name specifier
287 // CHECK-CC12-NEXT: Objective-C interface
288 
289 // RUN: c-index-test -code-completion-at=%s:58:12 %s | FileCheck -check-prefix=CHECK-CC13 %s
290 // CHECK-CC13: OverloadCandidate:{ResultType void}{Text foo_9}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter T}{RightParen )} (1)
291 // CHECK-CC13: Completion contexts:
292 // CHECK-CC13-NEXT: Any type
293 // CHECK-CC13-NEXT: Any value
294 // CHECK-CC13-NEXT: Enum tag
295 // CHECK-CC13-NEXT: Union tag
296 // CHECK-CC13-NEXT: Struct tag
297 // CHECK-CC13-NEXT: Class name
298 // CHECK-CC13-NEXT: Nested name specifier
299 // CHECK-CC13-NEXT: Objective-C interface
300 
301 // RUN: c-index-test -code-completion-at=%s:59:11 %s | FileCheck -check-prefix=CHECK-CC14 %s
302 // CHECK-CC14: OverloadCandidate:{ResultType void}{Text foo_9}{LeftParen (}{Placeholder void *}{Comma , }{CurrentParameter T}{RightParen )} (1)
303 // CHECK-CC14: Completion contexts:
304 // CHECK-CC14-NEXT: Any type
305 // CHECK-CC14-NEXT: Any value
306 // CHECK-CC14-NEXT: Enum tag
307 // CHECK-CC14-NEXT: Union tag
308 // CHECK-CC14-NEXT: Struct tag
309 // CHECK-CC14-NEXT: Class name
310 // CHECK-CC14-NEXT: Nested name specifier
311 // CHECK-CC14-NEXT: Objective-C interface
312 
313 // RUN: c-index-test -code-completion-at=%s:60:10 %s | FileCheck -check-prefix=CHECK-CC15 %s
314 // CHECK-CC15: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{CurrentParameter U}{Comma , }{Placeholder void *}{Comma , }{Placeholder void *}{RightParen )} (1)
315 // CHECK-CC15: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{CurrentParameter T}{Comma , }{Placeholder int}{Comma , }{Placeholder int}{RightParen )} (1)
316 // CHECK-CC15: Completion contexts:
317 // CHECK-CC15-NEXT: Any type
318 // CHECK-CC15-NEXT: Any value
319 // CHECK-CC15-NEXT: Enum tag
320 // CHECK-CC15-NEXT: Union tag
321 // CHECK-CC15-NEXT: Struct tag
322 // CHECK-CC15-NEXT: Class name
323 // CHECK-CC15-NEXT: Nested name specifier
324 // CHECK-CC15-NEXT: Objective-C interface
325 
326 // RUN: c-index-test -code-completion-at=%s:60:13 %s | FileCheck -check-prefix=CHECK-CC16 %s
327 // CHECK-CC16: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter void *}{Comma , }{Placeholder void *}{RightParen )} (1)
328 // CHECK-CC16: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{Comma , }{Placeholder int}{RightParen )} (1)
329 // CHECK-CC16: Completion contexts:
330 // CHECK-CC16-NEXT: Any type
331 // CHECK-CC16-NEXT: Any value
332 // CHECK-CC16-NEXT: Enum tag
333 // CHECK-CC16-NEXT: Union tag
334 // CHECK-CC16-NEXT: Struct tag
335 // CHECK-CC16-NEXT: Class name
336 // CHECK-CC16-NEXT: Nested name specifier
337 // CHECK-CC16-NEXT: Objective-C interface
338 
339 // RUN: c-index-test -code-completion-at=%s:60:17 %s | FileCheck -check-prefix=CHECK-CC17 %s
340 // CHECK-CC17: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{Placeholder int}{Comma , }{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
341 // CHECK-CC17: Completion contexts:
342 // CHECK-CC17-NEXT: Any type
343 // CHECK-CC17-NEXT: Any value
344 // CHECK-CC17-NEXT: Enum tag
345 // CHECK-CC17-NEXT: Union tag
346 // CHECK-CC17-NEXT: Struct tag
347 // CHECK-CC17-NEXT: Class name
348 // CHECK-CC17-NEXT: Nested name specifier
349 // CHECK-CC17-NEXT: Objective-C interface
350 
351 // RUN: c-index-test -code-completion-at=%s:61:10 %s | FileCheck -check-prefix=CHECK-CC18 %s
352 // CHECK-CC18: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{CurrentParameter T}{Comma , }{Placeholder U}{RightParen )} (1)
353 // CHECK-CC18: Completion contexts:
354 // CHECK-CC18-NEXT: Any type
355 // CHECK-CC18-NEXT: Any value
356 // CHECK-CC18-NEXT: Enum tag
357 // CHECK-CC18-NEXT: Union tag
358 // CHECK-CC18-NEXT: Struct tag
359 // CHECK-CC18-NEXT: Class name
360 // CHECK-CC18-NEXT: Nested name specifier
361 // CHECK-CC18-NEXT: Objective-C interface
362 
363 // RUN: c-index-test -code-completion-at=%s:61:13 %s | FileCheck -check-prefix=CHECK-CC19 %s
364 // CHECK-CC19: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter U}{RightParen )} (1)
365 // CHECK-CC19: Completion contexts:
366 // CHECK-CC19-NEXT: Any type
367 // CHECK-CC19-NEXT: Any value
368 // CHECK-CC19-NEXT: Enum tag
369 // CHECK-CC19-NEXT: Union tag
370 // CHECK-CC19-NEXT: Struct tag
371 // CHECK-CC19-NEXT: Class name
372 // CHECK-CC19-NEXT: Nested name specifier
373 // CHECK-CC19-NEXT: Objective-C interface
374 
375 // RUN: c-index-test -code-completion-at=%s:62:15 %s | FileCheck -check-prefix=CHECK-CC20 %s
376 // CHECK-CC20: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder U}{RightParen )} (1)
377 // CHECK-CC20: Completion contexts:
378 // CHECK-CC20-NEXT: Any type
379 // CHECK-CC20-NEXT: Any value
380 // CHECK-CC20-NEXT: Enum tag
381 // CHECK-CC20-NEXT: Union tag
382 // CHECK-CC20-NEXT: Struct tag
383 // CHECK-CC20-NEXT: Class name
384 // CHECK-CC20-NEXT: Nested name specifier
385 // CHECK-CC20-NEXT: Objective-C interface
386 
387 // RUN: c-index-test -code-completion-at=%s:62:18 %s | FileCheck -check-prefix=CHECK-CC21 %s
388 // CHECK-CC21: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter U}{RightParen )} (1)
389 // CHECK-CC21: Completion contexts:
390 // CHECK-CC21-NEXT: Any type
391 // CHECK-CC21-NEXT: Any value
392 // CHECK-CC21-NEXT: Enum tag
393 // CHECK-CC21-NEXT: Union tag
394 // CHECK-CC21-NEXT: Struct tag
395 // CHECK-CC21-NEXT: Class name
396 // CHECK-CC21-NEXT: Nested name specifier
397 // CHECK-CC21-NEXT: Objective-C interface
398 
399 // RUN: c-index-test -code-completion-at=%s:63:26 %s | FileCheck -check-prefix=CHECK-CC22 %s
400 // CHECK-CC22: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter void *}{RightParen )} (1)
401 // CHECK-CC22: Completion contexts:
402 // CHECK-CC22-NEXT: Any type
403 // CHECK-CC22-NEXT: Any value
404 // CHECK-CC22-NEXT: Enum tag
405 // CHECK-CC22-NEXT: Union tag
406 // CHECK-CC22-NEXT: Struct tag
407 // CHECK-CC22-NEXT: Class name
408 // CHECK-CC22-NEXT: Nested name specifier
409 // CHECK-CC22-NEXT: Objective-C interface
410 
411 // RUN: c-index-test -code-completion-at=%s:64:10 %s | FileCheck -check-prefix=CHECK-CC23 %s
412 // CHECK-CC23: OverloadCandidate:{ResultType void}{Text foo_12}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder int}{RightParen )} (1)
413 // CHECK-CC23: Completion contexts:
414 // CHECK-CC23-NEXT: Any type
415 // CHECK-CC23-NEXT: Any value
416 // CHECK-CC23-NEXT: Enum tag
417 // CHECK-CC23-NEXT: Union tag
418 // CHECK-CC23-NEXT: Struct tag
419 // CHECK-CC23-NEXT: Class name
420 // CHECK-CC23-NEXT: Nested name specifier
421 // CHECK-CC23-NEXT: Objective-C interface
422 
423 // RUN: c-index-test -code-completion-at=%s:64:12 %s | FileCheck -check-prefix=CHECK-CC24 %s
424 // CHECK-CC24: OverloadCandidate:{ResultType void}{Text foo_12}{LeftParen (}{Placeholder void *}{Comma , }{CurrentParameter void *}{RightParen )} (1)
425 // CHECK-CC24: Completion contexts:
426 // CHECK-CC24-NEXT: Any type
427 // CHECK-CC24-NEXT: Any value
428 // CHECK-CC24-NEXT: Enum tag
429 // CHECK-CC24-NEXT: Union tag
430 // CHECK-CC24-NEXT: Struct tag
431 // CHECK-CC24-NEXT: Class name
432 // CHECK-CC24-NEXT: Nested name specifier
433 // CHECK-CC24-NEXT: Objective-C interface
434 
435 // RUN: c-index-test -code-completion-at=%s:67:11 %s | FileCheck -check-prefix=CHECK-CC25 %s
436 // CHECK-CC25: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{RightParen )} (1)
437 // CHECK-CC25: Completion contexts:
438 // CHECK-CC25-NEXT: Any type
439 // CHECK-CC25-NEXT: Any value
440 // CHECK-CC25-NEXT: Enum tag
441 // CHECK-CC25-NEXT: Union tag
442 // CHECK-CC25-NEXT: Struct tag
443 // CHECK-CC25-NEXT: Class name
444 // CHECK-CC25-NEXT: Nested name specifier
445 // CHECK-CC25-NEXT: Objective-C interface
446 
447 // RUN: c-index-test -code-completion-at=%s:68:11 %s | FileCheck -check-prefix=CHECK-CC26 %s
448 // CHECK-CC26: OverloadCandidate:{ResultType void}{Text foo_2}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
449 // CHECK-CC26: OverloadCandidate:{ResultType void}{Text foo_2}{LeftParen (}{CurrentParameter void *}{RightParen )} (1)
450 // CHECK-CC26: Completion contexts:
451 // CHECK-CC26-NEXT: Any type
452 // CHECK-CC26-NEXT: Any value
453 // CHECK-CC26-NEXT: Enum tag
454 // CHECK-CC26-NEXT: Union tag
455 // CHECK-CC26-NEXT: Struct tag
456 // CHECK-CC26-NEXT: Class name
457 // CHECK-CC26-NEXT: Nested name specifier
458 // CHECK-CC26-NEXT: Objective-C interface
459 
460 // RUN: c-index-test -code-completion-at=%s:69:11 %s | FileCheck -check-prefix=CHECK-CC27 %s
461 // CHECK-CC27: OverloadCandidate:{ResultType void}{Text foo_3}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder int}{RightParen )} (1)
462 // CHECK-CC27: OverloadCandidate:{ResultType void}{Text foo_3}{LeftParen (}{CurrentParameter void *}{Comma , }{Placeholder void *}{RightParen )} (1)
463 // CHECK-CC27: Completion contexts:
464 // CHECK-CC27-NEXT: Any type
465 // CHECK-CC27-NEXT: Any value
466 // CHECK-CC27-NEXT: Enum tag
467 // CHECK-CC27-NEXT: Union tag
468 // CHECK-CC27-NEXT: Struct tag
469 // CHECK-CC27-NEXT: Class name
470 // CHECK-CC27-NEXT: Nested name specifier
471 // CHECK-CC27-NEXT: Objective-C interface
472 
473 // RUN: c-index-test -code-completion-at=%s:69:14 %s | FileCheck -check-prefix=CHECK-CC28 %s
474 // CHECK-CC28: OverloadCandidate:{ResultType void}{Text foo_3}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
475 // CHECK-CC28: Completion contexts:
476 // CHECK-CC28-NEXT: Any type
477 // CHECK-CC28-NEXT: Any value
478 // CHECK-CC28-NEXT: Enum tag
479 // CHECK-CC28-NEXT: Union tag
480 // CHECK-CC28-NEXT: Struct tag
481 // CHECK-CC28-NEXT: Class name
482 // CHECK-CC28-NEXT: Nested name specifier
483 // CHECK-CC28-NEXT: Objective-C interface
484 
485 // RUN: c-index-test -code-completion-at=%s:70:13 %s | FileCheck -check-prefix=CHECK-CC29 %s
486 // CHECK-CC29: OverloadCandidate:{ResultType void}{Text foo_3}{LeftParen (}{Placeholder void *}{Comma , }{CurrentParameter void *}{RightParen )} (1)
487 // CHECK-CC29: Completion contexts:
488 // CHECK-CC29-NEXT: Any type
489 // CHECK-CC29-NEXT: Any value
490 // CHECK-CC29-NEXT: Enum tag
491 // CHECK-CC29-NEXT: Union tag
492 // CHECK-CC29-NEXT: Struct tag
493 // CHECK-CC29-NEXT: Class name
494 // CHECK-CC29-NEXT: Nested name specifier
495 // CHECK-CC29-NEXT: Objective-C interface
496 
497 // RUN: c-index-test -code-completion-at=%s:71:14 %s | FileCheck -check-prefix=CHECK-CC30 %s
498 // CHECK-CC30: OverloadCandidate:{ResultType void}{Text foo_4}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
499 // CHECK-CC30: Completion contexts:
500 // CHECK-CC30-NEXT: Any type
501 // CHECK-CC30-NEXT: Any value
502 // CHECK-CC30-NEXT: Enum tag
503 // CHECK-CC30-NEXT: Union tag
504 // CHECK-CC30-NEXT: Struct tag
505 // CHECK-CC30-NEXT: Class name
506 // CHECK-CC30-NEXT: Nested name specifier
507 // CHECK-CC30-NEXT: Objective-C interface
508 
509 // RUN: c-index-test -code-completion-at=%s:72:13 %s | FileCheck -check-prefix=CHECK-CC31 %s
510 // CHECK-CC31: OverloadCandidate:{ResultType void}{Text foo_4}{LeftParen (}{Placeholder void *}{Comma , }{CurrentParameter int}{RightParen )} (1)
511 // CHECK-CC31: Completion contexts:
512 // CHECK-CC31-NEXT: Any type
513 // CHECK-CC31-NEXT: Any value
514 // CHECK-CC31-NEXT: Enum tag
515 // CHECK-CC31-NEXT: Union tag
516 // CHECK-CC31-NEXT: Struct tag
517 // CHECK-CC31-NEXT: Class name
518 // CHECK-CC31-NEXT: Nested name specifier
519 // CHECK-CC31-NEXT: Objective-C interface
520 
521 // RUN: c-index-test -code-completion-at=%s:73:14 %s | FileCheck -check-prefix=CHECK-CC32 %s
522 // CHECK-CC32: OverloadCandidate:{ResultType void}{Text foo_5}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
523 // CHECK-CC32: OverloadCandidate:{ResultType void}{Text foo_5}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter void *}{RightParen )} (1)
524 // CHECK-CC32: Completion contexts:
525 // CHECK-CC32-NEXT: Any type
526 // CHECK-CC32-NEXT: Any value
527 // CHECK-CC32-NEXT: Enum tag
528 // CHECK-CC32-NEXT: Union tag
529 // CHECK-CC32-NEXT: Struct tag
530 // CHECK-CC32-NEXT: Class name
531 // CHECK-CC32-NEXT: Nested name specifier
532 // CHECK-CC32-NEXT: Objective-C interface
533 
534 // RUN: c-index-test -code-completion-at=%s:74:16 %s | FileCheck -check-prefix=CHECK-CC33 %s
535 // CHECK-CC33: OverloadCandidate:{ResultType void}{Text foo_6}{LeftParen (}{RightParen )} (1)
536 // CHECK-CC33: Completion contexts:
537 // CHECK-CC33-NEXT: Any type
538 // CHECK-CC33-NEXT: Any value
539 // CHECK-CC33-NEXT: Enum tag
540 // CHECK-CC33-NEXT: Union tag
541 // CHECK-CC33-NEXT: Struct tag
542 // CHECK-CC33-NEXT: Class name
543 // CHECK-CC33-NEXT: Nested name specifier
544 // CHECK-CC33-NEXT: Objective-C interface
545 
546 // RUN: c-index-test -code-completion-at=%s:75:11 %s | FileCheck -check-prefix=CHECK-CC34 %s
547 // CHECK-CC34: OverloadCandidate:{ResultType void}{Text foo_7}{LeftParen (}{CurrentParameter T}{RightParen )} (1)
548 // CHECK-CC34: Completion contexts:
549 // CHECK-CC34-NEXT: Any type
550 // CHECK-CC34-NEXT: Any value
551 // CHECK-CC34-NEXT: Enum tag
552 // CHECK-CC34-NEXT: Union tag
553 // CHECK-CC34-NEXT: Struct tag
554 // CHECK-CC34-NEXT: Class name
555 // CHECK-CC34-NEXT: Nested name specifier
556 // CHECK-CC34-NEXT: Objective-C interface
557 
558 // RUN: c-index-test -code-completion-at=%s:76:16 %s | FileCheck -check-prefix=CHECK-CC35 %s
559 // CHECK-CC35: OverloadCandidate:{ResultType void}{Text foo_7}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
560 // CHECK-CC35: Completion contexts:
561 // CHECK-CC35-NEXT: Any type
562 // CHECK-CC35-NEXT: Any value
563 // CHECK-CC35-NEXT: Enum tag
564 // CHECK-CC35-NEXT: Union tag
565 // CHECK-CC35-NEXT: Struct tag
566 // CHECK-CC35-NEXT: Class name
567 // CHECK-CC35-NEXT: Nested name specifier
568 // CHECK-CC35-NEXT: Objective-C interface
569 
570 // RUN: c-index-test -code-completion-at=%s:77:14 %s | FileCheck -check-prefix=CHECK-CC36 %s
571 // CHECK-CC36: OverloadCandidate:{ResultType void}{Text foo_8}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
572 // CHECK-CC36: Completion contexts:
573 // CHECK-CC36-NEXT: Any type
574 // CHECK-CC36-NEXT: Any value
575 // CHECK-CC36-NEXT: Enum tag
576 // CHECK-CC36-NEXT: Union tag
577 // CHECK-CC36-NEXT: Struct tag
578 // CHECK-CC36-NEXT: Class name
579 // CHECK-CC36-NEXT: Nested name specifier
580 // CHECK-CC36-NEXT: Objective-C interface
581 
582 // RUN: c-index-test -code-completion-at=%s:78:14 %s | FileCheck -check-prefix=CHECK-CC37 %s
583 // CHECK-CC37: OverloadCandidate:{ResultType void}{Text foo_9}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter T}{RightParen )} (1)
584 // CHECK-CC37: Completion contexts:
585 // CHECK-CC37-NEXT: Any type
586 // CHECK-CC37-NEXT: Any value
587 // CHECK-CC37-NEXT: Enum tag
588 // CHECK-CC37-NEXT: Union tag
589 // CHECK-CC37-NEXT: Struct tag
590 // CHECK-CC37-NEXT: Class name
591 // CHECK-CC37-NEXT: Nested name specifier
592 // CHECK-CC37-NEXT: Objective-C interface
593 
594 // RUN: c-index-test -code-completion-at=%s:79:13 %s | FileCheck -check-prefix=CHECK-CC38 %s
595 // CHECK-CC38: OverloadCandidate:{ResultType void}{Text foo_9}{LeftParen (}{Placeholder void *}{Comma , }{CurrentParameter T}{RightParen )} (1)
596 // CHECK-CC38: Completion contexts:
597 // CHECK-CC38-NEXT: Any type
598 // CHECK-CC38-NEXT: Any value
599 // CHECK-CC38-NEXT: Enum tag
600 // CHECK-CC38-NEXT: Union tag
601 // CHECK-CC38-NEXT: Struct tag
602 // CHECK-CC38-NEXT: Class name
603 // CHECK-CC38-NEXT: Nested name specifier
604 // CHECK-CC38-NEXT: Objective-C interface
605 
606 // RUN: c-index-test -code-completion-at=%s:80:12 %s | FileCheck -check-prefix=CHECK-CC39 %s
607 // CHECK-CC39: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{CurrentParameter T}{Comma , }{Placeholder int}{Comma , }{Placeholder int}{RightParen )} (1)
608 // CHECK-CC39: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{CurrentParameter U}{Comma , }{Placeholder void *}{Comma , }{Placeholder void *}{RightParen )} (1)
609 // CHECK-CC39: Completion contexts:
610 // CHECK-CC39-NEXT: Any type
611 // CHECK-CC39-NEXT: Any value
612 // CHECK-CC39-NEXT: Enum tag
613 // CHECK-CC39-NEXT: Union tag
614 // CHECK-CC39-NEXT: Struct tag
615 // CHECK-CC39-NEXT: Class name
616 // CHECK-CC39-NEXT: Nested name specifier
617 // CHECK-CC39-NEXT: Objective-C interface
618 
619 // RUN: c-index-test -code-completion-at=%s:80:15 %s | FileCheck -check-prefix=CHECK-CC40 %s
620 // CHECK-CC40: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter int}{Comma , }{Placeholder int}{RightParen )} (1)
621 // CHECK-CC40: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter void *}{Comma , }{Placeholder void *}{RightParen )} (1)
622 // CHECK-CC40: Completion contexts:
623 // CHECK-CC40-NEXT: Any type
624 // CHECK-CC40-NEXT: Any value
625 // CHECK-CC40-NEXT: Enum tag
626 // CHECK-CC40-NEXT: Union tag
627 // CHECK-CC40-NEXT: Struct tag
628 // CHECK-CC40-NEXT: Class name
629 // CHECK-CC40-NEXT: Nested name specifier
630 // CHECK-CC40-NEXT: Objective-C interface
631 
632 // RUN: c-index-test -code-completion-at=%s:80:19 %s | FileCheck -check-prefix=CHECK-CC41 %s
633 // CHECK-CC41: OverloadCandidate:{ResultType void}{Text foo_10}{LeftParen (}{Placeholder int}{Comma , }{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
634 // CHECK-CC41: Completion contexts:
635 // CHECK-CC41-NEXT: Any type
636 // CHECK-CC41-NEXT: Any value
637 // CHECK-CC41-NEXT: Enum tag
638 // CHECK-CC41-NEXT: Union tag
639 // CHECK-CC41-NEXT: Struct tag
640 // CHECK-CC41-NEXT: Class name
641 // CHECK-CC41-NEXT: Nested name specifier
642 // CHECK-CC41-NEXT: Objective-C interface
643 
644 // RUN: c-index-test -code-completion-at=%s:81:12 %s | FileCheck -check-prefix=CHECK-CC42 %s
645 // CHECK-CC42: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{CurrentParameter T}{Comma , }{Placeholder U}{RightParen )} (1)
646 // CHECK-CC42: Completion contexts:
647 // CHECK-CC42-NEXT: Any type
648 // CHECK-CC42-NEXT: Any value
649 // CHECK-CC42-NEXT: Enum tag
650 // CHECK-CC42-NEXT: Union tag
651 // CHECK-CC42-NEXT: Struct tag
652 // CHECK-CC42-NEXT: Class name
653 // CHECK-CC42-NEXT: Nested name specifier
654 // CHECK-CC42-NEXT: Objective-C interface
655 
656 // RUN: c-index-test -code-completion-at=%s:81:15 %s | FileCheck -check-prefix=CHECK-CC43 %s
657 // CHECK-CC43: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter U}{RightParen )} (1)
658 // CHECK-CC43: Completion contexts:
659 // CHECK-CC43-NEXT: Any type
660 // CHECK-CC43-NEXT: Any value
661 // CHECK-CC43-NEXT: Enum tag
662 // CHECK-CC43-NEXT: Union tag
663 // CHECK-CC43-NEXT: Struct tag
664 // CHECK-CC43-NEXT: Class name
665 // CHECK-CC43-NEXT: Nested name specifier
666 // CHECK-CC43-NEXT: Objective-C interface
667 
668 // RUN: c-index-test -code-completion-at=%s:82:17 %s | FileCheck -check-prefix=CHECK-CC44 %s
669 // CHECK-CC44: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder U}{RightParen )} (1)
670 // CHECK-CC44: Completion contexts:
671 // CHECK-CC44-NEXT: Any type
672 // CHECK-CC44-NEXT: Any value
673 // CHECK-CC44-NEXT: Enum tag
674 // CHECK-CC44-NEXT: Union tag
675 // CHECK-CC44-NEXT: Struct tag
676 // CHECK-CC44-NEXT: Class name
677 // CHECK-CC44-NEXT: Nested name specifier
678 // CHECK-CC44-NEXT: Objective-C interface
679 
680 // RUN: c-index-test -code-completion-at=%s:82:20 %s | FileCheck -check-prefix=CHECK-CC45 %s
681 // CHECK-CC45: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter U}{RightParen )} (1)
682 // CHECK-CC45: Completion contexts:
683 // CHECK-CC45-NEXT: Any type
684 // CHECK-CC45-NEXT: Any value
685 // CHECK-CC45-NEXT: Enum tag
686 // CHECK-CC45-NEXT: Union tag
687 // CHECK-CC45-NEXT: Struct tag
688 // CHECK-CC45-NEXT: Class name
689 // CHECK-CC45-NEXT: Nested name specifier
690 // CHECK-CC45-NEXT: Objective-C interface
691 
692 // RUN: c-index-test -code-completion-at=%s:83:28 %s | FileCheck -check-prefix=CHECK-CC46 %s
693 // CHECK-CC46: OverloadCandidate:{ResultType void}{Text foo_11}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter void *}{RightParen )} (1)
694 // CHECK-CC46: Completion contexts:
695 // CHECK-CC46-NEXT: Any type
696 // CHECK-CC46-NEXT: Any value
697 // CHECK-CC46-NEXT: Enum tag
698 // CHECK-CC46-NEXT: Union tag
699 // CHECK-CC46-NEXT: Struct tag
700 // CHECK-CC46-NEXT: Class name
701 // CHECK-CC46-NEXT: Nested name specifier
702 // CHECK-CC46-NEXT: Objective-C interface
703 
704 // RUN: c-index-test -code-completion-at=%s:84:12 %s | FileCheck -check-prefix=CHECK-CC47 %s
705 // CHECK-CC47: OverloadCandidate:{ResultType void}{Text foo_12}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder int}{RightParen )} (1)
706 // CHECK-CC47: Completion contexts:
707 // CHECK-CC47-NEXT: Any type
708 // CHECK-CC47-NEXT: Any value
709 // CHECK-CC47-NEXT: Enum tag
710 // CHECK-CC47-NEXT: Union tag
711 // CHECK-CC47-NEXT: Struct tag
712 // CHECK-CC47-NEXT: Class name
713 // CHECK-CC47-NEXT: Nested name specifier
714 // CHECK-CC47-NEXT: Objective-C interface
715 
716 // RUN: c-index-test -code-completion-at=%s:84:14 %s | FileCheck -check-prefix=CHECK-CC48 %s
717 // CHECK-CC48: OverloadCandidate:{ResultType void}{Text foo_12}{LeftParen (}{Placeholder void *}{Comma , }{CurrentParameter void *}{RightParen )} (1)
718 // CHECK-CC48: Completion contexts:
719 // CHECK-CC48-NEXT: Any type
720 // CHECK-CC48-NEXT: Any value
721 // CHECK-CC48-NEXT: Enum tag
722 // CHECK-CC48-NEXT: Union tag
723 // CHECK-CC48-NEXT: Struct tag
724 // CHECK-CC48-NEXT: Class name
725 // CHECK-CC48-NEXT: Nested name specifier
726 // CHECK-CC48-NEXT: Objective-C interface
727 
728 // RUN: c-index-test -code-completion-at=%s:85:12 %s | FileCheck -check-prefix=CHECK-CC49 %s
729 // CHECK-CC49: OverloadCandidate:{ResultType void}{Text foo_13}{LeftParen (}{CurrentParameter int}{Comma , }{Placeholder T}{Comma , }{Placeholder T}{RightParen )} (1)
730 // CHECK-CC49: Completion contexts:
731 // CHECK-CC49-NEXT: Any type
732 // CHECK-CC49-NEXT: Any value
733 // CHECK-CC49-NEXT: Enum tag
734 // CHECK-CC49-NEXT: Union tag
735 // CHECK-CC49-NEXT: Struct tag
736 // CHECK-CC49-NEXT: Class name
737 // CHECK-CC49-NEXT: Nested name specifier
738 // CHECK-CC49-NEXT: Objective-C interface
739 
740 // RUN: c-index-test -code-completion-at=%s:85:15 %s | FileCheck -check-prefix=CHECK-CC50 %s
741 // CHECK-CC50: OverloadCandidate:{ResultType void}{Text foo_13}{LeftParen (}{Placeholder int}{Comma , }{CurrentParameter T}{Comma , }{Placeholder T}{RightParen )} (1)
742 // CHECK-CC50: Completion contexts:
743 // CHECK-CC50-NEXT: Any type
744 // CHECK-CC50-NEXT: Any value
745 // CHECK-CC50-NEXT: Enum tag
746 // CHECK-CC50-NEXT: Union tag
747 // CHECK-CC50-NEXT: Struct tag
748 // CHECK-CC50-NEXT: Class name
749 // CHECK-CC50-NEXT: Nested name specifier
750 // CHECK-CC50-NEXT: Objective-C interface
751 
752 // RUN: c-index-test -code-completion-at=%s:85:19 %s | FileCheck -check-prefix=CHECK-CC51 %s
753 // CHECK-CC51: OverloadCandidate:{ResultType void}{Text foo_13}{LeftParen (}{Placeholder int}{Comma , }{Placeholder int}{Comma , }{CurrentParameter int}{RightParen )} (1)
754 // CHECK-CC51: Completion contexts:
755 // CHECK-CC51-NEXT: Any type
756 // CHECK-CC51-NEXT: Any value
757 // CHECK-CC51-NEXT: Enum tag
758 // CHECK-CC51-NEXT: Union tag
759 // CHECK-CC51-NEXT: Struct tag
760 // CHECK-CC51-NEXT: Class name
761 // CHECK-CC51-NEXT: Nested name specifier
762 // CHECK-CC51-NEXT: Objective-C interface
763 
764 // RUN: c-index-test -code-completion-at=%s:87:12 %s | FileCheck -check-prefix=CHECK-CC52 %s
765 // CHECK-CC52: Completion contexts:
766 // CHECK-CC52-NEXT: Any type
767 // CHECK-CC52-NEXT: Any value
768 // CHECK-CC52-NEXT: Enum tag
769 // CHECK-CC52-NEXT: Union tag
770 // CHECK-CC52-NEXT: Struct tag
771 // CHECK-CC52-NEXT: Class name
772 // CHECK-CC52-NEXT: Nested name specifier
773 // CHECK-CC52-NEXT: Objective-C interface
774 
775 // RUN: c-index-test -code-completion-at=%s:88:12 %s | FileCheck -check-prefix=CHECK-CC53 %s
776 // CHECK-CC53: Completion contexts:
777 // CHECK-CC53-NEXT: Any type
778 // CHECK-CC53-NEXT: Any value
779 // CHECK-CC53-NEXT: Enum tag
780 // CHECK-CC53-NEXT: Union tag
781 // CHECK-CC53-NEXT: Struct tag
782 // CHECK-CC53-NEXT: Class name
783 // CHECK-CC53-NEXT: Nested name specifier
784 // CHECK-CC53-NEXT: Objective-C interface
785 
786 // RUN: c-index-test -code-completion-at=%s:89:17 %s | FileCheck -check-prefix=CHECK-CC54 %s
787 // CHECK-CC54: Completion contexts:
788 // CHECK-CC54-NEXT: Any type
789 // CHECK-CC54-NEXT: Any value
790 // CHECK-CC54-NEXT: Enum tag
791 // CHECK-CC54-NEXT: Union tag
792 // CHECK-CC54-NEXT: Struct tag
793 // CHECK-CC54-NEXT: Class name
794 // CHECK-CC54-NEXT: Nested name specifier
795 // CHECK-CC54-NEXT: Objective-C interface
796 
797 // RUN: c-index-test -code-completion-at=%s:90:12 %s | FileCheck -check-prefix=CHECK-CC55 %s
798 // CHECK-CC55: Completion contexts:
799 // CHECK-CC55-NEXT: Any type
800 // CHECK-CC55-NEXT: Any value
801 // CHECK-CC55-NEXT: Enum tag
802 // CHECK-CC55-NEXT: Union tag
803 // CHECK-CC55-NEXT: Struct tag
804 // CHECK-CC55-NEXT: Class name
805 // CHECK-CC55-NEXT: Nested name specifier
806 // CHECK-CC55-NEXT: Objective-C interface
807 
808 // RUN: c-index-test -code-completion-at=%s:91:14 %s | FileCheck -check-prefix=CHECK-CC56 %s
809 // CHECK-CC56: Completion contexts:
810 // CHECK-CC56-NEXT: Any type
811 // CHECK-CC56-NEXT: Any value
812 // CHECK-CC56-NEXT: Enum tag
813 // CHECK-CC56-NEXT: Union tag
814 // CHECK-CC56-NEXT: Struct tag
815 // CHECK-CC56-NEXT: Class name
816 // CHECK-CC56-NEXT: Nested name specifier
817 // CHECK-CC56-NEXT: Objective-C interface
818 
819 // RUN: c-index-test -code-completion-at=%s:92:14 %s | FileCheck -check-prefix=CHECK-CC57 %s
820 // CHECK-CC57: Completion contexts:
821 // CHECK-CC57-NEXT: Any type
822 // CHECK-CC57-NEXT: Any value
823 // CHECK-CC57-NEXT: Enum tag
824 // CHECK-CC57-NEXT: Union tag
825 // CHECK-CC57-NEXT: Struct tag
826 // CHECK-CC57-NEXT: Class name
827 // CHECK-CC57-NEXT: Nested name specifier
828 // CHECK-CC57-NEXT: Objective-C interface
829 
830 // RUN: c-index-test -code-completion-at=%s:93:19 %s | FileCheck -check-prefix=CHECK-CC58 %s
831 // CHECK-CC58: Completion contexts:
832 // CHECK-CC58-NEXT: Any type
833 // CHECK-CC58-NEXT: Any value
834 // CHECK-CC58-NEXT: Enum tag
835 // CHECK-CC58-NEXT: Union tag
836 // CHECK-CC58-NEXT: Struct tag
837 // CHECK-CC58-NEXT: Class name
838 // CHECK-CC58-NEXT: Nested name specifier
839 // CHECK-CC58-NEXT: Objective-C interface
840 
841 // RUN: c-index-test -code-completion-at=%s:94:14 %s | FileCheck -check-prefix=CHECK-CC59 %s
842 // CHECK-CC59: Completion contexts:
843 // CHECK-CC59-NEXT: Any type
844 // CHECK-CC59-NEXT: Any value
845 // CHECK-CC59-NEXT: Enum tag
846 // CHECK-CC59-NEXT: Union tag
847 // CHECK-CC59-NEXT: Struct tag
848 // CHECK-CC59-NEXT: Class name
849 // CHECK-CC59-NEXT: Nested name specifier
850 // CHECK-CC59-NEXT: Objective-C interface
851 
852 // RUN: c-index-test -code-completion-at=%s:104:14 %s | FileCheck -check-prefix=CHECK-CC60 %s
853 // CHECK-CC60: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{RightParen )} (1)
854 // CHECK-CC60: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter float}{RightParen )} (1)
855 // CHECK-CC60: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
856 // CHECK-CC60: Completion contexts:
857 // CHECK-CC60-NEXT: Any type
858 // CHECK-CC60-NEXT: Any value
859 // CHECK-CC60-NEXT: Enum tag
860 // CHECK-CC60-NEXT: Union tag
861 // CHECK-CC60-NEXT: Struct tag
862 // CHECK-CC60-NEXT: Class name
863 // CHECK-CC60-NEXT: Nested name specifier
864 // CHECK-CC60-NEXT: Objective-C interface
865 
866 // RUN: c-index-test -code-completion-at=%s:106:11 %s | FileCheck -check-prefix=CHECK-CC61 %s
867 // CHECK-CC61: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{RightParen )} (1)
868 // CHECK-CC61: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter float}{RightParen )} (1)
869 // CHECK-CC61: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
870 // CHECK-CC61: Completion contexts:
871 // CHECK-CC61-NEXT: Any type
872 // CHECK-CC61-NEXT: Any value
873 // CHECK-CC61-NEXT: Enum tag
874 // CHECK-CC61-NEXT: Union tag
875 // CHECK-CC61-NEXT: Struct tag
876 // CHECK-CC61-NEXT: Class name
877 // CHECK-CC61-NEXT: Nested name specifier
878 // CHECK-CC61-NEXT: Objective-C interface
879 
880 // RUN: c-index-test -code-completion-at=%s:111:16 %s | FileCheck -check-prefix=CHECK-CC62 %s
881 // CHECK-CC62: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{RightParen )} (1)
882 // CHECK-CC62: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter float}{RightParen )} (1)
883 // CHECK-CC62: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
884 // CHECK-CC62: Completion contexts:
885 // CHECK-CC62-NEXT: Any type
886 // CHECK-CC62-NEXT: Any value
887 // CHECK-CC62-NEXT: Enum tag
888 // CHECK-CC62-NEXT: Union tag
889 // CHECK-CC62-NEXT: Struct tag
890 // CHECK-CC62-NEXT: Class name
891 // CHECK-CC62-NEXT: Nested name specifier
892 // CHECK-CC62-NEXT: Objective-C interface
893 
894 // RUN: c-index-test -code-completion-at=%s:131:23 %s | FileCheck -check-prefix=CHECK-CC63 %s
895 // CHECK-CC63: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{RightParen )} (1)
896 // CHECK-CC63: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter float}{RightParen )} (1)
897 // CHECK-CC63: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
898 // CHECK-CC63: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter T1 a}{Comma , }{Placeholder T2 b}{RightParen )} (1)
899 // CHECK-CC63: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter T1 a}{Comma , }{Placeholder T2 b}{Comma , }{Placeholder float c}{RightParen )} (1)
900 // CHECK-CC63: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter T2 a}{Comma , }{Placeholder int b}{Comma , }{Placeholder T1 c}{RightParen )} (1)
901 
902 // RUN: c-index-test -code-completion-at=%s:133:11 %s | FileCheck -check-prefix=CHECK-CC64 %s
903 // CHECK-CC64: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{RightParen )} (1)
904 // CHECK-CC64: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter float}{RightParen )} (1)
905 // CHECK-CC64: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
906 // CHECK-CC64: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter T1 a}{Comma , }{Placeholder T2 b}{RightParen )} (1)
907 // CHECK-CC64: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter T2 a}{Comma , }{Placeholder int b}{Comma , }{Placeholder T1 c}{RightParen )} (1)
908 
909 // RUN: c-index-test -code-completion-at=%s:138:25 %s | FileCheck -check-prefix=CHECK-CC65 %s
910 // CHECK-CC65: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{RightParen )} (1)
911 // CHECK-CC65: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter float}{RightParen )} (1)
912 // CHECK-CC65: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
913 // CHECK-CC65: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter T1 a}{Comma , }{Placeholder T2 b}{RightParen )} (1)
914 // CHECK-CC65: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter T1 a}{Comma , }{Placeholder T2 b}{Comma , }{Placeholder float c}{RightParen )} (1)
915 // CHECK-CC65: OverloadCandidate:{ResultType void}{Text foo_1}{LeftParen (}{CurrentParameter T2 a}{Comma , }{Placeholder int b}{Comma , }{Placeholder T1 c}{RightParen )} (1)
916 
917