1f9e890cbSOlivier Goffart struct Base1 {
2f9e890cbSOlivier Goffart   Base1() : {}
33cd10137SOlivier Goffart   // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:2:12 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
43cd10137SOlivier Goffart   // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:2:12 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
5f9e890cbSOlivier Goffart   // CHECK-CC1: COMPLETION: Pattern : member1(<#args#>)
6f9e890cbSOlivier Goffart   // CHECK-CC1: COMPLETION: Pattern : member2(<#args#>
7f9e890cbSOlivier Goffart 
8f9e890cbSOlivier Goffart   Base1(int) : member1(123), {}
93cd10137SOlivier Goffart   // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:8:30 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s
103cd10137SOlivier Goffart   // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:8:30 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s
11f9e890cbSOlivier Goffart   // CHECK-CC2-NOT: COMPLETION: Pattern : member1(<#args#>)
12f9e890cbSOlivier Goffart   // CHECK-CC2: COMPLETION: Pattern : member2(<#args#>
13f9e890cbSOlivier Goffart 
14f9e890cbSOlivier Goffart   int member1;
15f9e890cbSOlivier Goffart   float member2;
16f9e890cbSOlivier Goffart };
17f9e890cbSOlivier Goffart 
18f9e890cbSOlivier Goffart struct Derived : public Base1 {
19f9e890cbSOlivier Goffart   Derived();
20f9e890cbSOlivier Goffart   Derived(int);
21f9e890cbSOlivier Goffart   Derived(float);
22f9e890cbSOlivier Goffart   int deriv1;
23f9e890cbSOlivier Goffart };
24f9e890cbSOlivier Goffart 
25f9e890cbSOlivier Goffart Derived::Derived() : {}
263cd10137SOlivier Goffart // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:25:22 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s
273cd10137SOlivier Goffart // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:25:22 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s
28f9e890cbSOlivier Goffart // CHECK-CC3: COMPLETION: Pattern : Base1(<#args#>)
29f9e890cbSOlivier Goffart // CHECK-CC3: COMPLETION: Pattern : deriv1(<#args#>)
30f9e890cbSOlivier Goffart 
31f9e890cbSOlivier Goffart Derived::Derived(int) try : {
32f9e890cbSOlivier Goffart } catch (...) {
33f9e890cbSOlivier Goffart }
343cd10137SOlivier Goffart // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:31:29 %s -o - | FileCheck -check-prefix=CHECK-CC4 %s
353cd10137SOlivier Goffart // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:31:29 %s -o - | FileCheck -check-prefix=CHECK-CC4 %s
36f9e890cbSOlivier Goffart // CHECK-CC4: COMPLETION: Pattern : Base1(<#args#>)
37f9e890cbSOlivier Goffart // CHECK-CC4: COMPLETION: Pattern : deriv1(<#args#>)
38f9e890cbSOlivier Goffart 
39f9e890cbSOlivier Goffart Derived::Derived(float) try : Base1(),
40f9e890cbSOlivier Goffart {
41f9e890cbSOlivier Goffart } catch (...) {
42f9e890cbSOlivier Goffart }
433cd10137SOlivier Goffart // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:39:39 %s -o - | FileCheck -check-prefix=CHECK-CC5 %s
443cd10137SOlivier Goffart // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:39:39 %s -o - | FileCheck -check-prefix=CHECK-CC5 %s
45f9e890cbSOlivier Goffart // CHECK-CC5-NOT: COMPLETION: Pattern : Base1(<#args#>)
46f9e890cbSOlivier Goffart // CHECK-CC5: COMPLETION: Pattern : deriv1(<#args#>)
473cd10137SOlivier Goffart 
483cd10137SOlivier Goffart struct A {
493cd10137SOlivier Goffart   A() : , member2() {}
503cd10137SOlivier Goffart   // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:49:9 %s -o - | FileCheck -check-prefix=CHECK-CC6 %s
513cd10137SOlivier Goffart   // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:49:9 %s -o - | FileCheck -check-prefix=CHECK-CC6 %s
523cd10137SOlivier Goffart   // CHECK-CC6: COMPLETION: Pattern : member1(<#args#>
533cd10137SOlivier Goffart   int member1, member2;
543cd10137SOlivier Goffart };
553cd10137SOlivier Goffart 
563cd10137SOlivier Goffart struct B {
573cd10137SOlivier Goffart   B() : member2() {}
583cd10137SOlivier Goffart   // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:57:9 %s -o - | FileCheck -check-prefix=CHECK-CC7 %s
593cd10137SOlivier Goffart   // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:57:9 %s -o - | FileCheck -check-prefix=CHECK-CC7 %s
603cd10137SOlivier Goffart   // CHECK-CC7: COMPLETION: Pattern : member1(<#args#>
61*ef4ece75SIlya Biryukov   // Check in the middle and at the end of identifier too.
62*ef4ece75SIlya Biryukov   // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:57:13 %s -o - | FileCheck -check-prefix=CHECK-CC8 %s
63*ef4ece75SIlya Biryukov   // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:57:16 %s -o - | FileCheck -check-prefix=CHECK-CC8 %s
64*ef4ece75SIlya Biryukov   // CHECK-CC8: COMPLETION: Pattern : member2(<#args#>
653cd10137SOlivier Goffart   int member1, member2;
663cd10137SOlivier Goffart };
67