[LV] Add test showing debug output for loops with uncountable BTCs.
[llvm-project.git] / clang / test / ExtractAPI / methods.cpp
blob67f04b4d33db833aa883d070c8bf018baa0f5131
1 // RUN: rm -rf %t
2 // RUN: %clang_cc1 -extract-api --pretty-sgf --emit-sgf-symbol-labels-for-testing \
3 // RUN: -triple arm64-apple-macosx -x c++-header %s -o %t/output.symbols.json -verify
5 class Foo {
6 // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETCOUNT
7 int getCount();
8 // GETCOUNT: "!testRelLabel": "memberOf $ c:@S@Foo@F@getCount# $ c:@S@Foo"
9 // GETCOUNT-LABEL: "!testLabel": "c:@S@Foo@F@getCount#"
10 // GETCOUNT: "accessLevel": "private",
11 // GETCOUNT: "declarationFragments": [
12 // GETCOUNT-NEXT: {
13 // GETCOUNT-NEXT: "kind": "typeIdentifier",
14 // GETCOUNT-NEXT: "preciseIdentifier": "c:I",
15 // GETCOUNT-NEXT: "spelling": "int"
16 // GETCOUNT-NEXT: },
17 // GETCOUNT-NEXT: {
18 // GETCOUNT-NEXT: "kind": "text",
19 // GETCOUNT-NEXT: "spelling": " "
20 // GETCOUNT-NEXT: },
21 // GETCOUNT-NEXT: {
22 // GETCOUNT-NEXT: "kind": "identifier",
23 // GETCOUNT-NEXT: "spelling": "getCount"
24 // GETCOUNT-NEXT: },
25 // GETCOUNT-NEXT: {
26 // GETCOUNT-NEXT: "kind": "text",
27 // GETCOUNT-NEXT: "spelling": "();"
28 // GETCOUNT-NEXT: }
29 // GETCOUNT-NEXT: ],
30 // GETCOUNT: "functionSignature": {
31 // GETCOUNT-NEXT: "returns": [
32 // GETCOUNT-NEXT: {
33 // GETCOUNT-NEXT: "kind": "typeIdentifier",
34 // GETCOUNT-NEXT: "preciseIdentifier": "c:I",
35 // GETCOUNT-NEXT: "spelling": "int"
36 // GETCOUNT-NEXT: }
37 // GETCOUNT-NEXT: ]
38 // GETCOUNT-NEXT: },
39 // GETCOUNT: "displayName": "Instance Method",
40 // GETCOUNT-NEXT: "identifier": "c++.method"
41 // GETCOUNT: "title": "getCount"
42 // GETCOUNT: "pathComponents": [
43 // GETCOUNT-NEXT: "Foo",
44 // GETCOUNT-NEXT: "getCount"
45 // GETCOUNT-NEXT: ]
47 // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix SETL
48 void setLength(int length) noexcept;
49 // SETL: "!testRelLabel": "memberOf $ c:@S@Foo@F@setLength#I# $ c:@S@Foo"
50 // SETL-LABEL: "!testLabel": "c:@S@Foo@F@setLength#I#"
51 // SETL: "declarationFragments": [
52 // SETL-NEXT: {
53 // SETL-NEXT: "kind": "typeIdentifier",
54 // SETL-NEXT: "preciseIdentifier": "c:v",
55 // SETL-NEXT: "spelling": "void"
56 // SETL-NEXT: },
57 // SETL-NEXT: {
58 // SETL-NEXT: "kind": "text",
59 // SETL-NEXT: "spelling": " "
60 // SETL-NEXT: },
61 // SETL-NEXT: {
62 // SETL-NEXT: "kind": "identifier",
63 // SETL-NEXT: "spelling": "setLength"
64 // SETL-NEXT: },
65 // SETL-NEXT: {
66 // SETL-NEXT: "kind": "text",
67 // SETL-NEXT: "spelling": "("
68 // SETL-NEXT: },
69 // SETL-NEXT: {
70 // SETL-NEXT: "kind": "typeIdentifier",
71 // SETL-NEXT: "preciseIdentifier": "c:I",
72 // SETL-NEXT: "spelling": "int"
73 // SETL-NEXT: },
74 // SETL-NEXT: {
75 // SETL-NEXT: "kind": "text",
76 // SETL-NEXT: "spelling": " "
77 // SETL-NEXT: },
78 // SETL-NEXT: {
79 // SETL-NEXT: "kind": "internalParam",
80 // SETL-NEXT: "spelling": "length"
81 // SETL-NEXT: },
82 // SETL-NEXT: {
83 // SETL-NEXT: "kind": "text",
84 // SETL-NEXT: "spelling": ") "
85 // SETL-NEXT: },
86 // SETL-NEXT: {
87 // SETL-NEXT: "kind": "keyword",
88 // SETL-NEXT: "spelling": "noexcept"
89 // SETL-NEXT: },
90 // SETL-NEXT: {
91 // SETL-NEXT: "kind": "text",
92 // SETL-NEXT: "spelling": ";"
93 // SETL-NEXT: }
94 // SETL-NEXT: ],
95 // SETL: "functionSignature": {
96 // SETL-NEXT: "parameters": [
97 // SETL-NEXT: {
98 // SETL-NEXT: "declarationFragments": [
99 // SETL-NEXT: {
100 // SETL-NEXT: "kind": "typeIdentifier",
101 // SETL-NEXT: "preciseIdentifier": "c:I",
102 // SETL-NEXT: "spelling": "int"
103 // SETL-NEXT: },
104 // SETL-NEXT: {
105 // SETL-NEXT: "kind": "text",
106 // SETL-NEXT: "spelling": " "
107 // SETL-NEXT: },
108 // SETL-NEXT: {
109 // SETL-NEXT: "kind": "internalParam",
110 // SETL-NEXT: "spelling": "length"
111 // SETL-NEXT: }
112 // SETL-NEXT: ],
113 // SETL-NEXT: "name": "length"
114 // SETL-NEXT: }
115 // SETL-NEXT: ],
116 // SETL-NEXT: "returns": [
117 // SETL-NEXT: {
118 // SETL-NEXT: "kind": "typeIdentifier",
119 // SETL-NEXT: "preciseIdentifier": "c:v",
120 // SETL-NEXT: "spelling": "void"
121 // SETL-NEXT: }
122 // SETL-NEXT: ]
123 // SETL-NEXT: },
125 public:
126 // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETFOO
127 static double getFoo();
128 // GETFOO: "!testRelLabel": "memberOf $ c:@S@Foo@F@getFoo#S $ c:@S@Foo"
130 // GETFOO-LABEL: "!testLabel": "c:@S@Foo@F@getFoo#S"
131 // GETFOO: "accessLevel": "public",
132 // GETFOO: "declarationFragments": [
133 // GETFOO-NEXT: {
134 // GETFOO-NEXT: "kind": "keyword",
135 // GETFOO-NEXT: "spelling": "static"
136 // GETFOO-NEXT: },
137 // GETFOO-NEXT: {
138 // GETFOO-NEXT: "kind": "text",
139 // GETFOO-NEXT: "spelling": " "
140 // GETFOO-NEXT: },
141 // GETFOO-NEXT: {
142 // GETFOO-NEXT: "kind": "typeIdentifier",
143 // GETFOO-NEXT: "preciseIdentifier": "c:d",
144 // GETFOO-NEXT: "spelling": "double"
145 // GETFOO-NEXT: },
146 // GETFOO-NEXT: {
147 // GETFOO-NEXT: "kind": "text",
148 // GETFOO-NEXT: "spelling": " "
149 // GETFOO-NEXT: },
150 // GETFOO-NEXT: {
151 // GETFOO-NEXT: "kind": "identifier",
152 // GETFOO-NEXT: "spelling": "getFoo"
153 // GETFOO-NEXT: },
154 // GETFOO-NEXT: {
155 // GETFOO-NEXT: "kind": "text",
156 // GETFOO-NEXT: "spelling": "();"
157 // GETFOO-NEXT: }
158 // GETFOO-NEXT: ],
159 // GETFOO: "functionSignature": {
160 // GETFOO-NEXT: "returns": [
161 // GETFOO-NEXT: {
162 // GETFOO-NEXT: "kind": "typeIdentifier",
163 // GETFOO-NEXT: "preciseIdentifier": "c:d",
164 // GETFOO-NEXT: "spelling": "double"
165 // GETFOO-NEXT: }
166 // GETFOO-NEXT: ]
167 // GETFOO-NEXT: },
168 // GETFOO: "kind": {
169 // GETFOO-NEXT: "displayName": "Static Method",
170 // GETFOO-NEXT: "identifier": "c++.type.method"
171 // GETFOO-NEXT: },
173 protected:
174 // RUN: FileCheck %s --input-file %t/output.symbols.json --check-prefix GETBAR
175 constexpr int getBar() const;
176 // GETBAR: "!testRelLabel": "memberOf $ c:@S@Foo@F@getBar#1 $ c:@S@Foo"
178 // GETBAR-LABEL: "!testLabel": "c:@S@Foo@F@getBar#1"
179 // GETBAR: "accessLevel": "protected"
180 // GETBAR: "declarationFragments": [
181 // GETBAR-NEXT: {
182 // GETBAR-NEXT: "kind": "keyword",
183 // GETBAR-NEXT: "spelling": "constexpr"
184 // GETBAR-NEXT: },
185 // GETBAR-NEXT: {
186 // GETBAR-NEXT: "kind": "text",
187 // GETBAR-NEXT: "spelling": " "
188 // GETBAR-NEXT: },
189 // GETBAR-NEXT: {
190 // GETBAR-NEXT: "kind": "typeIdentifier",
191 // GETBAR-NEXT: "preciseIdentifier": "c:I",
192 // GETBAR-NEXT: "spelling": "int"
193 // GETBAR-NEXT: },
194 // GETBAR-NEXT: {
195 // GETBAR-NEXT: "kind": "text",
196 // GETBAR-NEXT: "spelling": " "
197 // GETBAR-NEXT: },
198 // GETBAR-NEXT: {
199 // GETBAR-NEXT: "kind": "identifier",
200 // GETBAR-NEXT: "spelling": "getBar"
201 // GETBAR-NEXT: },
202 // GETBAR-NEXT: {
203 // GETBAR-NEXT: "kind": "text",
204 // GETBAR-NEXT: "spelling": "() "
205 // GETBAR-NEXT: },
206 // GETBAR-NEXT: {
207 // GETBAR-NEXT: "kind": "keyword",
208 // GETBAR-NEXT: "spelling": "const"
209 // GETBAR-NEXT: },
210 // GETBAR-NEXT: {
211 // GETBAR-NEXT: "kind": "text",
212 // GETBAR-NEXT: "spelling": ";"
213 // GETBAR-NEXT: }
214 // GETBAR-NEXT: ],
217 // expected-no-diagnostics