1*67e74705SXin Li // The run lines are below, because this test is line- and 2*67e74705SXin Li // column-number sensitive. 3*67e74705SXin Li 4*67e74705SXin Li template<typename T> 5*67e74705SXin Li struct X { 6*67e74705SXin Li X(T); 7*67e74705SXin Li }; 8*67e74705SXin Li 9*67e74705SXin Li struct Virt { }; 10*67e74705SXin Li struct Y : virtual Virt { }; 11*67e74705SXin Li 12*67e74705SXin Li struct Z : public X<int>, public Y { 13*67e74705SXin Li Z(); 14*67e74705SXin Li 15*67e74705SXin Li int a, b, c; 16*67e74705SXin Li }; 17*67e74705SXin Li Z()18*67e74705SXin LiZ::Z() : ::X<int>(0), Virt(), b(), c() { } 19*67e74705SXin Li 20*67e74705SXin Li struct PR23948 { PR23948PR2394821*67e74705SXin Li template<class size> PR23948() 22*67e74705SXin Li : 23*67e74705SXin Li {} 24*67e74705SXin Li invalidPR2394825*67e74705SXin Li template<class size> void invalid() 26*67e74705SXin Li : 27*67e74705SXin Li {} 28*67e74705SXin Li 29*67e74705SXin Li int a; 30*67e74705SXin Li }; 31*67e74705SXin Li 32*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:18:10 %s | FileCheck -check-prefix=CHECK-CC1 %s 33*67e74705SXin Li // CHECK-CC1: MemberRef:{TypedText a}{LeftParen (}{Placeholder args}{RightParen )} (35) 34*67e74705SXin Li // CHECK-CC1: MemberRef:{TypedText b}{LeftParen (}{Placeholder args}{RightParen )} (35) 35*67e74705SXin Li // CHECK-CC1: MemberRef:{TypedText c}{LeftParen (}{Placeholder args}{RightParen )} (35) 36*67e74705SXin Li // CHECK-CC1: NotImplemented:{TypedText Virt}{LeftParen (}{Placeholder args}{RightParen )} (35) 37*67e74705SXin Li // CHECK-CC1: NotImplemented:{TypedText X<int>}{LeftParen (}{Placeholder args}{RightParen )} (7) 38*67e74705SXin Li // CHECK-CC1: NotImplemented:{TypedText Y}{LeftParen (}{Placeholder args}{RightParen )} (35) 39*67e74705SXin Li 40*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:18:23 %s | FileCheck -check-prefix=CHECK-CC2 %s 41*67e74705SXin Li // CHECK-CC2: MemberRef:{TypedText a}{LeftParen (}{Placeholder args}{RightParen )} (35) 42*67e74705SXin Li // CHECK-CC2: MemberRef:{TypedText b}{LeftParen (}{Placeholder args}{RightParen )} (35) 43*67e74705SXin Li // CHECK-CC2: MemberRef:{TypedText c}{LeftParen (}{Placeholder args}{RightParen )} (35) 44*67e74705SXin Li // CHECK-CC2: NotImplemented:{TypedText Virt}{LeftParen (}{Placeholder args}{RightParen )} (35) 45*67e74705SXin Li // CHECK-CC2: NotImplemented:{TypedText Y}{LeftParen (}{Placeholder args}{RightParen )} (7) 46*67e74705SXin Li 47*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:18:36 %s | FileCheck -check-prefix=CHECK-CC3 %s 48*67e74705SXin Li // CHECK-CC3: MemberRef:{TypedText a}{LeftParen (}{Placeholder args}{RightParen )} (35) 49*67e74705SXin Li // CHECK-CC3-NOT: MemberRef:{TypedText b}{LeftParen (}{Placeholder args}{RightParen )} 50*67e74705SXin Li // CHECK-CC3: MemberRef:{TypedText c}{LeftParen (}{Placeholder args}{RightParen )} (7) 51*67e74705SXin Li // CHECK-CC3-NOT: NotImplemented:{TypedText Virt}{LeftParen (}{Placeholder args}{RightParen )} 52*67e74705SXin Li // CHECK-CC3: NotImplemented:{TypedText Y}{LeftParen (}{Placeholder args}{RightParen )} (35) 53*67e74705SXin Li 54*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:22:10 -target i386-apple-darwin %s | FileCheck -check-prefix=CHECK-CC4 %s 55*67e74705SXin Li // CHECK-CC4: MemberRef:{TypedText a}{LeftParen (}{Placeholder args}{RightParen )} (7) 56*67e74705SXin Li // RUN: c-index-test -code-completion-at=%s:26:10 %s 57