brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · e450fce Raw
126 lines · cpp
1struct Base1 {2  Base1() : {}3  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-1):12 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s4  // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-2):12 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s5  // CHECK-CC1: COMPLETION: Pattern : member1(<#int#>)6  // CHECK-CC1: COMPLETION: Pattern : member2(<#float#>)7 8  Base1(int) : member1(123), {}9  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-1):30 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s10  // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-2):30 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s11  // CHECK-CC2-NOT: COMPLETION: Pattern : member1(<#int#>)12  // CHECK-CC2: COMPLETION: Pattern : member2(<#float#>)13 14  int member1;15  float member2;16};17 18struct Derived : public Base1 {19  Derived();20  Derived(int);21  Derived(float);22  int deriv1;23};24 25Derived::Derived() : {}26// RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-1):22 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s27// RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-2):22 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s28// CHECK-CC3: COMPLETION: Pattern : Base1()29// CHECK-CC3: COMPLETION: Pattern : Base1(<#int#>)30// CHECK-CC3: COMPLETION: Pattern : deriv1(<#int#>)31 32Derived::Derived(int) try : {33} catch (...) {34}35// RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-3):29 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s36// RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-4):29 %s -o - | FileCheck -check-prefix=CHECK-CC3 %s37 38Derived::Derived(float) try : Base1(),39{40} catch (...) {41}42// RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-4):39 %s -o - | FileCheck -check-prefix=CHECK-CC5 %s43// RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-5):39 %s -o - | FileCheck -check-prefix=CHECK-CC5 %s44// CHECK-CC5-NOT: COMPLETION: Pattern : Base145// CHECK-CC5: COMPLETION: Pattern : deriv1(<#int#>)46 47struct A {48  A() : , member2() {}49  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-1):9 %s -o - | FileCheck -check-prefix=CHECK-CC6 %s50  // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-2):9 %s -o - | FileCheck -check-prefix=CHECK-CC6 %s51  // CHECK-CC6: COMPLETION: Pattern : member1(<#int#>)52  int member1, member2;53};54 55struct B {56  B() : member2() {}57  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-1):9 %s -o - | FileCheck -check-prefix=CHECK-CC7 %s58  // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-2):9 %s -o - | FileCheck -check-prefix=CHECK-CC7 %s59  // CHECK-CC7: COMPLETION: Pattern : member1(<#int#>)60  // Check in the middle and at the end of identifier too.61  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-5):13 %s -o - | FileCheck -check-prefix=CHECK-CC8 %s62  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-6):16 %s -o - | FileCheck -check-prefix=CHECK-CC8 %s63  // CHECK-CC8: COMPLETION: Pattern : member2(<#int#>)64  int member1, member2;65};66 67struct Base2 {68  Base2(int);69};70 71struct Composition1 {72  Composition1() : b2_elem(2) {}73  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-1):28 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s74  // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-2):28 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s75  // CHECK-CC9: OVERLOAD: Base2(<#int#>)76  // CHECK-CC9: OVERLOAD: Base2(<#const Base2 &#>)77  // CHECK-CC9-NOT: OVERLOAD: Composition178  Composition1(Base2);79  Base2 b2_elem;80};81 82struct Composition2 {83  Composition2() : c1_elem(Base2(1)) {}84  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-1):34 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s85  // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-2):34 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s86  // RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-3):35 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s87  // RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-4):35 %s -o - | FileCheck -check-prefix=CHECK-CC9 %s88  Composition1 c1_elem;89};90// RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-7):20 %s -o - | FileCheck -check-prefix=CHECK-CC10 %s91// RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-8):20 %s -o - | FileCheck -check-prefix=CHECK-CC10 %s92// CHECK-CC10: Pattern : c1_elem()93// CHECK-CC10: Pattern : c1_elem(<#Base2#>)94 95template <class T>96struct Y : T {};97 98template <class T>99struct X : Y<T> {100  X() : Y<T>() {};101};102 103// RUN: %clang_cc1 -fsyntax-only -std=c++98 -code-completion-at=%s:%(line-3):9 %s -o - | FileCheck -check-prefix=CHECK-CC11 %s104// RUN: %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-4):9 %s -o - | FileCheck -check-prefix=CHECK-CC11 %s105// CHECK-CC11: Pattern : Y<T>(<#Y<T>#>)106 107// Test with incomplete init lists. (Relevant as parsing is *not* cut off).108struct Incomplete1 {109  Incomplete1() : mem110 111  int member1;112  int member2;113};114// RUN: not %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-5):19 %s -o - | FileCheck -check-prefix=CHECK-CC12 %s115// CHECK-CC12: COMPLETION: Pattern : member1(<#int#>)116// CHECK-CC12: COMPLETION: Pattern : member2(<#int#>)117 118struct Incomplete2 {119  Incomplete2() : member2(120 121  int member1;122  int member2;123};124// RUN: not %clang_cc1 -fsyntax-only -std=c++14 -code-completion-at=%s:%(line-5):27 %s -o - | FileCheck -check-prefix=CHECK-CC13 %s125// CHECK-CC13: PREFERRED-TYPE: int126