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