1c6ccc4feSFrancisco Lopes da Silva // Note: the run lines follow their respective tests, since line/column
2c6ccc4feSFrancisco Lopes da Silva // matter in this test.
3c6ccc4feSFrancisco Lopes da Silva
4c6ccc4feSFrancisco Lopes da Silva template<class T> void (&foo(T))(T);
5c6ccc4feSFrancisco Lopes da Silva template<class T> void (*bar(T))(T);
613937abeSFrancisco Lopes da Silva template<class T> void (&baz(T))(T, ...);
713937abeSFrancisco Lopes da Silva template<class T> void (*fiz(T))(T, ...);
8c6ccc4feSFrancisco Lopes da Silva
main()9c6ccc4feSFrancisco Lopes da Silva int main() {
10c6ccc4feSFrancisco Lopes da Silva foo(42)(42);
11c6ccc4feSFrancisco Lopes da Silva bar(42)(42);
1213937abeSFrancisco Lopes da Silva baz(42)(42, 42, 42);
1313937abeSFrancisco Lopes da Silva fiz(42)(42, 42, 42);
14c6ccc4feSFrancisco Lopes da Silva }
15c6ccc4feSFrancisco Lopes da Silva
1613937abeSFrancisco Lopes da Silva // RUN: c-index-test -code-completion-at=%s:10:11 %s | FileCheck -check-prefix=CHECK-CC1 %s
17*0c010cddSFrancisco Lopes da Silva // CHECK-CC1: OverloadCandidate:{ResultType void}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
18c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1: Completion contexts:
19c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1-NEXT: Any type
20c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1-NEXT: Any value
21c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1-NEXT: Enum tag
22c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1-NEXT: Union tag
23c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1-NEXT: Struct tag
24c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1-NEXT: Class name
25c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1-NEXT: Nested name specifier
26c6ccc4feSFrancisco Lopes da Silva // CHECK-CC1-NEXT: Objective-C interface
27c6ccc4feSFrancisco Lopes da Silva
2813937abeSFrancisco Lopes da Silva // RUN: c-index-test -code-completion-at=%s:11:11 %s | FileCheck -check-prefix=CHECK-CC2 %s
29*0c010cddSFrancisco Lopes da Silva // CHECK-CC2: OverloadCandidate:{ResultType void}{LeftParen (}{CurrentParameter int}{RightParen )} (1)
30c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2: Completion contexts:
31c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2-NEXT: Any type
32c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2-NEXT: Any value
33c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2-NEXT: Enum tag
34c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2-NEXT: Union tag
35c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2-NEXT: Struct tag
36c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2-NEXT: Class name
37c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2-NEXT: Nested name specifier
38c6ccc4feSFrancisco Lopes da Silva // CHECK-CC2-NEXT: Objective-C interface
3913937abeSFrancisco Lopes da Silva
4013937abeSFrancisco Lopes da Silva // RUN: c-index-test -code-completion-at=%s:12:18 %s | FileCheck -check-prefix=CHECK-CC3 %s
41*0c010cddSFrancisco Lopes da Silva // CHECK-CC3: OverloadCandidate:{ResultType void}{LeftParen (}{Placeholder int}{Optional {Comma , }{CurrentParameter ...}}{RightParen )} (1)
4213937abeSFrancisco Lopes da Silva // CHECK-CC3: Completion contexts:
4313937abeSFrancisco Lopes da Silva // CHECK-CC3-NEXT: Any type
4413937abeSFrancisco Lopes da Silva // CHECK-CC3-NEXT: Any value
4513937abeSFrancisco Lopes da Silva // CHECK-CC3-NEXT: Enum tag
4613937abeSFrancisco Lopes da Silva // CHECK-CC3-NEXT: Union tag
4713937abeSFrancisco Lopes da Silva // CHECK-CC3-NEXT: Struct tag
4813937abeSFrancisco Lopes da Silva // CHECK-CC3-NEXT: Class name
4913937abeSFrancisco Lopes da Silva // CHECK-CC3-NEXT: Nested name specifier
5013937abeSFrancisco Lopes da Silva // CHECK-CC3-NEXT: Objective-C interface
5113937abeSFrancisco Lopes da Silva
5213937abeSFrancisco Lopes da Silva // RUN: c-index-test -code-completion-at=%s:13:18 %s | FileCheck -check-prefix=CHECK-CC4 %s
53*0c010cddSFrancisco Lopes da Silva // CHECK-CC4: OverloadCandidate:{ResultType void}{LeftParen (}{Placeholder int}{Optional {Comma , }{CurrentParameter ...}}{RightParen )} (1)
5413937abeSFrancisco Lopes da Silva // CHECK-CC4: Completion contexts:
5513937abeSFrancisco Lopes da Silva // CHECK-CC4-NEXT: Any type
5613937abeSFrancisco Lopes da Silva // CHECK-CC4-NEXT: Any value
5713937abeSFrancisco Lopes da Silva // CHECK-CC4-NEXT: Enum tag
5813937abeSFrancisco Lopes da Silva // CHECK-CC4-NEXT: Union tag
5913937abeSFrancisco Lopes da Silva // CHECK-CC4-NEXT: Struct tag
6013937abeSFrancisco Lopes da Silva // CHECK-CC4-NEXT: Class name
6113937abeSFrancisco Lopes da Silva // CHECK-CC4-NEXT: Nested name specifier
6213937abeSFrancisco Lopes da Silva // CHECK-CC4-NEXT: Objective-C interface
63