]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/CodeCompletion/ctor-initializer.cpp
Vendor import of clang trunk r338150:
[FreeBSD/FreeBSD.git] / test / CodeCompletion / ctor-initializer.cpp
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 };