1ae45d0a4SKadir Cetinkaya class A { 2ae45d0a4SKadir Cetinkaya public: 3ae45d0a4SKadir Cetinkaya virtual void vfunc(bool param); 4ae45d0a4SKadir Cetinkaya virtual void vfunc(bool param, int p); 5ae45d0a4SKadir Cetinkaya void func(bool param); 6ae45d0a4SKadir Cetinkaya }; 7ae45d0a4SKadir Cetinkaya class B : public A { 8ae45d0a4SKadir Cetinkaya virtual int ttt(bool param, int x = 3) const; 9ae45d0a4SKadir Cetinkaya void vfunc(bool param, int p) override; 10ae45d0a4SKadir Cetinkaya }; 11ae45d0a4SKadir Cetinkaya class C : public B { 12ae45d0a4SKadir Cetinkaya public: 13ae45d0a4SKadir Cetinkaya void vfunc(bool param) override; 14*cabab29aSIlya Biryukov vf 15ae45d0a4SKadir Cetinkaya }; 16ae45d0a4SKadir Cetinkaya 17*cabab29aSIlya Biryukov // Runs completion at ^vf 18ae45d0a4SKadir Cetinkaya // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:14:3 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s 19ae45d0a4SKadir Cetinkaya // CHECK-CC1: COMPLETION: Pattern : int ttt(bool param, int x = 3) const override{{$}} 20ae45d0a4SKadir Cetinkaya // CHECK-CC1: COMPLETION: Pattern : void vfunc(bool param, int p) override{{$}} 21ae45d0a4SKadir Cetinkaya // CHECK-CC1-NOT: COMPLETION: Pattern : void vfunc(bool param) override{{$}} 22ae45d0a4SKadir Cetinkaya // 23*cabab29aSIlya Biryukov // Runs completion at vf^ 24ae45d0a4SKadir Cetinkaya // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:14:5 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s 25ae45d0a4SKadir Cetinkaya // CHECK-CC2-NOT: COMPLETION: Pattern : int ttt(bool param, int x = 3) const override{{$}} 26*cabab29aSIlya Biryukov // CHECK-CC2: COMPLETION: Pattern : void vfunc(bool param, int p) override{{$}} 27ae45d0a4SKadir Cetinkaya // CHECK-CC2-NOT: COMPLETION: Pattern : void vfunc(bool param) override{{$}} 28ae45d0a4SKadir Cetinkaya // 29*cabab29aSIlya Biryukov // Runs completion at void ^ on line 13. 30*cabab29aSIlya Biryukov // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:13:8 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s 31ae45d0a4SKadir Cetinkaya // CHECK-CC3-NOT: COMPLETION: Pattern : int ttt(bool param, int x = 3) const override{{$}} 32ae45d0a4SKadir Cetinkaya // CHECK-CC3-NOT: COMPLETION: Pattern : void vfunc(bool param, int p) override{{$}} 33ae45d0a4SKadir Cetinkaya // CHECK-CC3-NOT: COMPLETION: Pattern : void vfunc(bool param) override{{$}} 34