Clang Project

clang_source_code/test/Index/complete-call.cpp
1// Note: the run lines follow their respective tests, since line/column
2// matter in this test.
3
4void foo_1();
5void foo_2(int);
6void foo_2(void *);
7void foo_3(int, int);
8void foo_3(void *, void *);
9void foo_4(int, int);
10void foo_4(void *, int);
11void foo_5(int, int);
12void foo_5(int, void *);
13template<class T> void foo_6();
14template<class T> void foo_7(T);
15template<class T> void foo_8(T, T);
16template<class T> void foo_9(int, T);
17template<class T> void foo_9(void *, T);
18template<class T> void foo_10(T, int, int);
19template<class U> void foo_10(U, void *, void *);
20template<class T, class U> void foo_11(T, U);
21template<class T = int> void foo_12(T, T);
22template<class V>
23struct 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
45int 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
97struct Bar {
98  static void foo_1();
99  void foo_1(float);
100  static void foo_1(int);
101};
102
103void test() {
104  Bar::foo_1();
105  Bar b;
106  b.foo_1();
107}
108
109struct Bar2 : public Bar {
110  Bar2() {
111    Bar::foo_1();
112  }
113};
114
115struct BarTemplates {
116  static void foo_1() {}
117  void foo_1(float) {}
118  static void foo_1(int) {}
119
120  template<class T1, class T2>
121  static void foo_1(T1 a, T2 b) { a + b; }
122
123  template<class T1, class T2>
124  void foo_1(T1 a, T2 b, float c) { a + b + c; }
125
126  template<class T1, class T2>
127  static void foo_1(T2 a, int b, T1 c)  { a + b + c; }
128};
129
130void testTemplates() {
131  BarTemplates::foo_1();
132  BarTemplates b;
133  b.foo_1();
134}
135
136struct Bar2Template : public BarTemplates {
137  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