1*67e74705SXin Li // Note: the run lines follow their respective tests, since line/column 2*67e74705SXin Li // matter in this test. 3*67e74705SXin Li 4*67e74705SXin Li template<class T> void (&foo(T))(T); 5*67e74705SXin Li template<class T> void (*bar(T))(T); 6*67e74705SXin Li template<class T> void (&baz(T))(T, ...); 7*67e74705SXin Li template<class T> void (*fiz(T))(T, ...); 8*67e74705SXin Li main()9*67e74705SXin Liint main() { 10*67e74705SXin Li foo(42)(42); 11*67e74705SXin Li bar(42)(42); 12*67e74705SXin Li baz(42)(42, 42, 42); 13*67e74705SXin Li fiz(42)(42, 42, 42); 14*67e74705SXin Li } 15*67e74705SXin Li 16*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:10:11 %s | FileCheck -check-prefix=CHECK-CC1 %s 17*67e74705SXin Li // CHECK-CC1: OverloadCandidate:{ResultType void}{LeftParen (}{CurrentParameter int}{RightParen )} (1) 18*67e74705SXin Li // CHECK-CC1: Completion contexts: 19*67e74705SXin Li // CHECK-CC1-NEXT: Any type 20*67e74705SXin Li // CHECK-CC1-NEXT: Any value 21*67e74705SXin Li // CHECK-CC1-NEXT: Enum tag 22*67e74705SXin Li // CHECK-CC1-NEXT: Union tag 23*67e74705SXin Li // CHECK-CC1-NEXT: Struct tag 24*67e74705SXin Li // CHECK-CC1-NEXT: Class name 25*67e74705SXin Li // CHECK-CC1-NEXT: Nested name specifier 26*67e74705SXin Li // CHECK-CC1-NEXT: Objective-C interface 27*67e74705SXin Li 28*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:11:11 %s | FileCheck -check-prefix=CHECK-CC2 %s 29*67e74705SXin Li // CHECK-CC2: OverloadCandidate:{ResultType void}{LeftParen (}{CurrentParameter int}{RightParen )} (1) 30*67e74705SXin Li // CHECK-CC2: Completion contexts: 31*67e74705SXin Li // CHECK-CC2-NEXT: Any type 32*67e74705SXin Li // CHECK-CC2-NEXT: Any value 33*67e74705SXin Li // CHECK-CC2-NEXT: Enum tag 34*67e74705SXin Li // CHECK-CC2-NEXT: Union tag 35*67e74705SXin Li // CHECK-CC2-NEXT: Struct tag 36*67e74705SXin Li // CHECK-CC2-NEXT: Class name 37*67e74705SXin Li // CHECK-CC2-NEXT: Nested name specifier 38*67e74705SXin Li // CHECK-CC2-NEXT: Objective-C interface 39*67e74705SXin Li 40*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:12:18 %s | FileCheck -check-prefix=CHECK-CC3 %s 41*67e74705SXin Li // CHECK-CC3: OverloadCandidate:{ResultType void}{LeftParen (}{Placeholder int}{Optional {Comma , }{CurrentParameter ...}}{RightParen )} (1) 42*67e74705SXin Li // CHECK-CC3: Completion contexts: 43*67e74705SXin Li // CHECK-CC3-NEXT: Any type 44*67e74705SXin Li // CHECK-CC3-NEXT: Any value 45*67e74705SXin Li // CHECK-CC3-NEXT: Enum tag 46*67e74705SXin Li // CHECK-CC3-NEXT: Union tag 47*67e74705SXin Li // CHECK-CC3-NEXT: Struct tag 48*67e74705SXin Li // CHECK-CC3-NEXT: Class name 49*67e74705SXin Li // CHECK-CC3-NEXT: Nested name specifier 50*67e74705SXin Li // CHECK-CC3-NEXT: Objective-C interface 51*67e74705SXin Li 52*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:13:18 %s | FileCheck -check-prefix=CHECK-CC4 %s 53*67e74705SXin Li // CHECK-CC4: OverloadCandidate:{ResultType void}{LeftParen (}{Placeholder int}{Optional {Comma , }{CurrentParameter ...}}{RightParen )} (1) 54*67e74705SXin Li // CHECK-CC4: Completion contexts: 55*67e74705SXin Li // CHECK-CC4-NEXT: Any type 56*67e74705SXin Li // CHECK-CC4-NEXT: Any value 57*67e74705SXin Li // CHECK-CC4-NEXT: Enum tag 58*67e74705SXin Li // CHECK-CC4-NEXT: Union tag 59*67e74705SXin Li // CHECK-CC4-NEXT: Struct tag 60*67e74705SXin Li // CHECK-CC4-NEXT: Class name 61*67e74705SXin Li // CHECK-CC4-NEXT: Nested name specifier 62*67e74705SXin Li // CHECK-CC4-NEXT: Objective-C interface 63