1 struct Base1 { 2 Base1() : {} 3 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:2:12 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s 4 // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:2:12 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s 5 // CHECK-CC1: COMPLETION: Pattern : member1(<#args#>) 6 // CHECK-CC1: COMPLETION: Pattern : member2(<#args#> 7 8 Base1(int) : member1(123), {} 9 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:8:30 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s 10 // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:8:30 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s 11 // CHECK-CC2-NOT: COMPLETION: Pattern : member1(<#args#>) 12 // CHECK-CC2: COMPLETION: Pattern : member2(<#args#> 13 14 int member1; 15 float member2; 16 }; 17 18 struct Derived : public Base1 { 19 Derived(); 20 Derived(int); 21 Derived(float); 22 int deriv1; 23 }; 24 25 Derived::Derived() : {} 26 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:25:22 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s 27 // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:25:22 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s 28 // CHECK-CC3: COMPLETION: Pattern : Base1(<#args#>) 29 // CHECK-CC3: COMPLETION: Pattern : deriv1(<#args#>) 30 31 Derived::Derived(int) try : { 32 } catch (...) { 33 } 34 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:31:29 %s -o - | FileCheck -check-prefix=CHECK-CC4 %s 35 // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:31:29 %s -o - | FileCheck -check-prefix=CHECK-CC4 %s 36 // CHECK-CC4: COMPLETION: Pattern : Base1(<#args#>) 37 // CHECK-CC4: COMPLETION: Pattern : deriv1(<#args#>) 38 39 Derived::Derived(float) try : Base1(), 40 { 41 } catch (...) { 42 } 43 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:39:39 %s -o - | FileCheck -check-prefix=CHECK-CC5 %s 44 // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:39:39 %s -o - | FileCheck -check-prefix=CHECK-CC5 %s 45 // CHECK-CC5-NOT: COMPLETION: Pattern : Base1(<#args#>) 46 // CHECK-CC5: COMPLETION: Pattern : deriv1(<#args#>) 47 48 struct A { 49 A() : , member2() {} 50 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:49:9 %s -o - | FileCheck -check-prefix=CHECK-CC6 %s 51 // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:49:9 %s -o - | FileCheck -check-prefix=CHECK-CC6 %s 52 // CHECK-CC6: COMPLETION: Pattern : member1(<#args#> 53 int member1, member2; 54 }; 55 56 struct B { 57 B() : member2() {} 58 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:57:9 %s -o - | FileCheck -check-prefix=CHECK-CC7 %s 59 // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:57:9 %s -o - | FileCheck -check-prefix=CHECK-CC7 %s 60 // CHECK-CC7: COMPLETION: Pattern : member1(<#args#> 61 // Check in the middle and at the end of identifier too. 62 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:57:13 %s -o - | FileCheck -check-prefix=CHECK-CC8 %s 63 // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:57:16 %s -o - | FileCheck -check-prefix=CHECK-CC8 %s 64 // CHECK-CC8: COMPLETION: Pattern : member2(<#args#> 65 int member1, member2; 66 }; 67