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;
144dd71b3cSFurkan Usta vf;
15ae45d0a4SKadir Cetinkaya };
16ae45d0a4SKadir Cetinkaya
17cabab29aSIlya Biryukov // Runs completion at ^vf
18*cf9b25e0SSam McCall // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:%(line-4):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 //
23cabab29aSIlya Biryukov // Runs completion at vf^
24*cf9b25e0SSam McCall // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:%(line-10):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{{$}}
26cabab29aSIlya 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 //
29cabab29aSIlya Biryukov // Runs completion at void ^ on line 13.
30*cf9b25e0SSam McCall // RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:%(line-17):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{{$}}
344dd71b3cSFurkan Usta
func()354dd71b3cSFurkan Usta void func() {
364dd71b3cSFurkan Usta class D : public A {
374dd71b3cSFurkan Usta
384dd71b3cSFurkan Usta };
394dd71b3cSFurkan Usta }
404dd71b3cSFurkan Usta
414dd71b3cSFurkan Usta // Runs completion at empty line on line 37.
42*cf9b25e0SSam McCall // RUN: not %clang_cc1 -fsyntax-only -code-completion-at=%s:%(line-5):1 %s -o - | FileCheck -check-prefix=CHECK-CC4 %s
434dd71b3cSFurkan Usta // CHECK-CC4: COMPLETION: Pattern : void vfunc(bool param, int p) override{{$}}
44