1 // RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++17 -ast-dump=json %s | FileCheck %s
33 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
34 // using --filters=EnumDecl
36 // CHECK-NOT: {{^}}Dumping
37 // CHECK: "kind": "EnumDecl",
38 // CHECK-NEXT: "loc": {
39 // CHECK-NEXT: "offset": {{[0-9]+}},
40 // CHECK-NEXT: "file": "{{.*}}",
41 // CHECK-NEXT: "line": 3,
42 // CHECK-NEXT: "col": 1,
43 // CHECK-NEXT: "tokLen": 4
45 // CHECK-NEXT: "range": {
46 // CHECK-NEXT: "begin": {
47 // CHECK-NEXT: "offset": {{[0-9]+}},
48 // CHECK-NEXT: "col": 1,
49 // CHECK-NEXT: "tokLen": 4
51 // CHECK-NEXT: "end": {
52 // CHECK-NEXT: "offset": {{[0-9]+}},
53 // CHECK-NEXT: "line": 6,
54 // CHECK-NEXT: "col": 1,
55 // CHECK-NEXT: "tokLen": 1
58 // CHECK-NEXT: "inner": [
60 // CHECK-NEXT: "id": "0x{{.*}}",
61 // CHECK-NEXT: "kind": "EnumConstantDecl",
62 // CHECK-NEXT: "loc": {
63 // CHECK-NEXT: "offset": {{[0-9]+}},
64 // CHECK-NEXT: "line": 4,
65 // CHECK-NEXT: "col": 3,
66 // CHECK-NEXT: "tokLen": 3
68 // CHECK-NEXT: "range": {
69 // CHECK-NEXT: "begin": {
70 // CHECK-NEXT: "offset": {{[0-9]+}},
71 // CHECK-NEXT: "col": 3,
72 // CHECK-NEXT: "tokLen": 3
74 // CHECK-NEXT: "end": {
75 // CHECK-NEXT: "offset": {{[0-9]+}},
76 // CHECK-NEXT: "col": 3,
77 // CHECK-NEXT: "tokLen": 3
80 // CHECK-NEXT: "name": "One",
81 // CHECK-NEXT: "type": {
82 // CHECK-NEXT: "qualType": "(unnamed enum at {{.*}}:3:1)"
86 // CHECK-NEXT: "id": "0x{{.*}}",
87 // CHECK-NEXT: "kind": "EnumConstantDecl",
88 // CHECK-NEXT: "loc": {
89 // CHECK-NEXT: "offset": {{[0-9]+}},
90 // CHECK-NEXT: "line": 5,
91 // CHECK-NEXT: "col": 3,
92 // CHECK-NEXT: "tokLen": 3
94 // CHECK-NEXT: "range": {
95 // CHECK-NEXT: "begin": {
96 // CHECK-NEXT: "offset": {{[0-9]+}},
97 // CHECK-NEXT: "col": 3,
98 // CHECK-NEXT: "tokLen": 3
100 // CHECK-NEXT: "end": {
101 // CHECK-NEXT: "offset": {{[0-9]+}},
102 // CHECK-NEXT: "col": 3,
103 // CHECK-NEXT: "tokLen": 3
106 // CHECK-NEXT: "name": "Two",
107 // CHECK-NEXT: "type": {
108 // CHECK-NEXT: "qualType": "(unnamed enum at {{.*}}:3:1)"
114 // CHECK-NOT: {{^}}Dumping
115 // CHECK: "kind": "EnumDecl",
116 // CHECK-NEXT: "loc": {
117 // CHECK-NEXT: "offset": {{[0-9]+}},
118 // CHECK-NEXT: "line": 8,
119 // CHECK-NEXT: "col": 6,
120 // CHECK-NEXT: "tokLen": 1
122 // CHECK-NEXT: "range": {
123 // CHECK-NEXT: "begin": {
124 // CHECK-NEXT: "offset": {{[0-9]+}},
125 // CHECK-NEXT: "col": 1,
126 // CHECK-NEXT: "tokLen": 4
128 // CHECK-NEXT: "end": {
129 // CHECK-NEXT: "offset": {{[0-9]+}},
130 // CHECK-NEXT: "line": 11,
131 // CHECK-NEXT: "col": 1,
132 // CHECK-NEXT: "tokLen": 1
135 // CHECK-NEXT: "name": "E",
136 // CHECK-NEXT: "inner": [
138 // CHECK-NEXT: "id": "0x{{.*}}",
139 // CHECK-NEXT: "kind": "EnumConstantDecl",
140 // CHECK-NEXT: "loc": {
141 // CHECK-NEXT: "offset": {{[0-9]+}},
142 // CHECK-NEXT: "line": 9,
143 // CHECK-NEXT: "col": 3,
144 // CHECK-NEXT: "tokLen": 5
146 // CHECK-NEXT: "range": {
147 // CHECK-NEXT: "begin": {
148 // CHECK-NEXT: "offset": {{[0-9]+}},
149 // CHECK-NEXT: "col": 3,
150 // CHECK-NEXT: "tokLen": 5
152 // CHECK-NEXT: "end": {
153 // CHECK-NEXT: "offset": {{[0-9]+}},
154 // CHECK-NEXT: "col": 3,
155 // CHECK-NEXT: "tokLen": 5
158 // CHECK-NEXT: "name": "Three",
159 // CHECK-NEXT: "type": {
160 // CHECK-NEXT: "qualType": "E"
164 // CHECK-NEXT: "id": "0x{{.*}}",
165 // CHECK-NEXT: "kind": "EnumConstantDecl",
166 // CHECK-NEXT: "loc": {
167 // CHECK-NEXT: "offset": {{[0-9]+}},
168 // CHECK-NEXT: "line": 10,
169 // CHECK-NEXT: "col": 3,
170 // CHECK-NEXT: "tokLen": 4
172 // CHECK-NEXT: "range": {
173 // CHECK-NEXT: "begin": {
174 // CHECK-NEXT: "offset": {{[0-9]+}},
175 // CHECK-NEXT: "col": 3,
176 // CHECK-NEXT: "tokLen": 4
178 // CHECK-NEXT: "end": {
179 // CHECK-NEXT: "offset": {{[0-9]+}},
180 // CHECK-NEXT: "col": 3,
181 // CHECK-NEXT: "tokLen": 4
184 // CHECK-NEXT: "name": "Four",
185 // CHECK-NEXT: "type": {
186 // CHECK-NEXT: "qualType": "E"
192 // CHECK-NOT: {{^}}Dumping
193 // CHECK: "kind": "EnumDecl",
194 // CHECK-NEXT: "loc": {
195 // CHECK-NEXT: "offset": {{[0-9]+}},
196 // CHECK-NEXT: "line": 13,
197 // CHECK-NEXT: "col": 6,
198 // CHECK-NEXT: "tokLen": 1
200 // CHECK-NEXT: "range": {
201 // CHECK-NEXT: "begin": {
202 // CHECK-NEXT: "offset": {{[0-9]+}},
203 // CHECK-NEXT: "col": 1,
204 // CHECK-NEXT: "tokLen": 4
206 // CHECK-NEXT: "end": {
207 // CHECK-NEXT: "offset": {{[0-9]+}},
208 // CHECK-NEXT: "line": 16,
209 // CHECK-NEXT: "col": 1,
210 // CHECK-NEXT: "tokLen": 1
213 // CHECK-NEXT: "name": "F",
214 // CHECK-NEXT: "fixedUnderlyingType": {
215 // CHECK-NEXT: "qualType": "short"
217 // CHECK-NEXT: "inner": [
219 // CHECK-NEXT: "id": "0x{{.*}}",
220 // CHECK-NEXT: "kind": "EnumConstantDecl",
221 // CHECK-NEXT: "loc": {
222 // CHECK-NEXT: "offset": {{[0-9]+}},
223 // CHECK-NEXT: "line": 14,
224 // CHECK-NEXT: "col": 3,
225 // CHECK-NEXT: "tokLen": 4
227 // CHECK-NEXT: "range": {
228 // CHECK-NEXT: "begin": {
229 // CHECK-NEXT: "offset": {{[0-9]+}},
230 // CHECK-NEXT: "col": 3,
231 // CHECK-NEXT: "tokLen": 4
233 // CHECK-NEXT: "end": {
234 // CHECK-NEXT: "offset": {{[0-9]+}},
235 // CHECK-NEXT: "col": 3,
236 // CHECK-NEXT: "tokLen": 4
239 // CHECK-NEXT: "name": "Five",
240 // CHECK-NEXT: "type": {
241 // CHECK-NEXT: "qualType": "F"
245 // CHECK-NEXT: "id": "0x{{.*}}",
246 // CHECK-NEXT: "kind": "EnumConstantDecl",
247 // CHECK-NEXT: "loc": {
248 // CHECK-NEXT: "offset": {{[0-9]+}},
249 // CHECK-NEXT: "line": 15,
250 // CHECK-NEXT: "col": 3,
251 // CHECK-NEXT: "tokLen": 3
253 // CHECK-NEXT: "range": {
254 // CHECK-NEXT: "begin": {
255 // CHECK-NEXT: "offset": {{[0-9]+}},
256 // CHECK-NEXT: "col": 3,
257 // CHECK-NEXT: "tokLen": 3
259 // CHECK-NEXT: "end": {
260 // CHECK-NEXT: "offset": {{[0-9]+}},
261 // CHECK-NEXT: "col": 3,
262 // CHECK-NEXT: "tokLen": 3
265 // CHECK-NEXT: "name": "Six",
266 // CHECK-NEXT: "type": {
267 // CHECK-NEXT: "qualType": "F"
273 // CHECK-NOT: {{^}}Dumping
274 // CHECK: "kind": "EnumDecl",
275 // CHECK-NEXT: "loc": {
276 // CHECK-NEXT: "offset": {{[0-9]+}},
277 // CHECK-NEXT: "line": 18,
278 // CHECK-NEXT: "col": 13,
279 // CHECK-NEXT: "tokLen": 1
281 // CHECK-NEXT: "range": {
282 // CHECK-NEXT: "begin": {
283 // CHECK-NEXT: "offset": {{[0-9]+}},
284 // CHECK-NEXT: "col": 1,
285 // CHECK-NEXT: "tokLen": 4
287 // CHECK-NEXT: "end": {
288 // CHECK-NEXT: "offset": {{[0-9]+}},
289 // CHECK-NEXT: "line": 21,
290 // CHECK-NEXT: "col": 1,
291 // CHECK-NEXT: "tokLen": 1
294 // CHECK-NEXT: "name": "G",
295 // CHECK-NEXT: "fixedUnderlyingType": {
296 // CHECK-NEXT: "qualType": "int"
298 // CHECK-NEXT: "scopedEnumTag": "struct",
299 // CHECK-NEXT: "inner": [
301 // CHECK-NEXT: "id": "0x{{.*}}",
302 // CHECK-NEXT: "kind": "EnumConstantDecl",
303 // CHECK-NEXT: "loc": {
304 // CHECK-NEXT: "offset": {{[0-9]+}},
305 // CHECK-NEXT: "line": 19,
306 // CHECK-NEXT: "col": 3,
307 // CHECK-NEXT: "tokLen": 5
309 // CHECK-NEXT: "range": {
310 // CHECK-NEXT: "begin": {
311 // CHECK-NEXT: "offset": {{[0-9]+}},
312 // CHECK-NEXT: "col": 3,
313 // CHECK-NEXT: "tokLen": 5
315 // CHECK-NEXT: "end": {
316 // CHECK-NEXT: "offset": {{[0-9]+}},
317 // CHECK-NEXT: "col": 3,
318 // CHECK-NEXT: "tokLen": 5
321 // CHECK-NEXT: "name": "Seven",
322 // CHECK-NEXT: "type": {
323 // CHECK-NEXT: "qualType": "G"
327 // CHECK-NEXT: "id": "0x{{.*}}",
328 // CHECK-NEXT: "kind": "EnumConstantDecl",
329 // CHECK-NEXT: "loc": {
330 // CHECK-NEXT: "offset": {{[0-9]+}},
331 // CHECK-NEXT: "line": 20,
332 // CHECK-NEXT: "col": 3,
333 // CHECK-NEXT: "tokLen": 5
335 // CHECK-NEXT: "range": {
336 // CHECK-NEXT: "begin": {
337 // CHECK-NEXT: "offset": {{[0-9]+}},
338 // CHECK-NEXT: "col": 3,
339 // CHECK-NEXT: "tokLen": 5
341 // CHECK-NEXT: "end": {
342 // CHECK-NEXT: "offset": {{[0-9]+}},
343 // CHECK-NEXT: "col": 3,
344 // CHECK-NEXT: "tokLen": 5
347 // CHECK-NEXT: "name": "Eight",
348 // CHECK-NEXT: "type": {
349 // CHECK-NEXT: "qualType": "G"
355 // CHECK-NOT: {{^}}Dumping
356 // CHECK: "kind": "EnumDecl",
357 // CHECK-NEXT: "loc": {
358 // CHECK-NEXT: "offset": {{[0-9]+}},
359 // CHECK-NEXT: "line": 23,
360 // CHECK-NEXT: "col": 12,
361 // CHECK-NEXT: "tokLen": 1
363 // CHECK-NEXT: "range": {
364 // CHECK-NEXT: "begin": {
365 // CHECK-NEXT: "offset": {{[0-9]+}},
366 // CHECK-NEXT: "col": 1,
367 // CHECK-NEXT: "tokLen": 4
369 // CHECK-NEXT: "end": {
370 // CHECK-NEXT: "offset": {{[0-9]+}},
371 // CHECK-NEXT: "line": 26,
372 // CHECK-NEXT: "col": 1,
373 // CHECK-NEXT: "tokLen": 1
376 // CHECK-NEXT: "name": "H",
377 // CHECK-NEXT: "fixedUnderlyingType": {
378 // CHECK-NEXT: "qualType": "int"
380 // CHECK-NEXT: "scopedEnumTag": "class",
381 // CHECK-NEXT: "inner": [
383 // CHECK-NEXT: "id": "0x{{.*}}",
384 // CHECK-NEXT: "kind": "EnumConstantDecl",
385 // CHECK-NEXT: "loc": {
386 // CHECK-NEXT: "offset": {{[0-9]+}},
387 // CHECK-NEXT: "line": 24,
388 // CHECK-NEXT: "col": 3,
389 // CHECK-NEXT: "tokLen": 4
391 // CHECK-NEXT: "range": {
392 // CHECK-NEXT: "begin": {
393 // CHECK-NEXT: "offset": {{[0-9]+}},
394 // CHECK-NEXT: "col": 3,
395 // CHECK-NEXT: "tokLen": 4
397 // CHECK-NEXT: "end": {
398 // CHECK-NEXT: "offset": {{[0-9]+}},
399 // CHECK-NEXT: "col": 3,
400 // CHECK-NEXT: "tokLen": 4
403 // CHECK-NEXT: "name": "Nine",
404 // CHECK-NEXT: "type": {
405 // CHECK-NEXT: "qualType": "H"
409 // CHECK-NEXT: "id": "0x{{.*}}",
410 // CHECK-NEXT: "kind": "EnumConstantDecl",
411 // CHECK-NEXT: "loc": {
412 // CHECK-NEXT: "offset": {{[0-9]+}},
413 // CHECK-NEXT: "line": 25,
414 // CHECK-NEXT: "col": 3,
415 // CHECK-NEXT: "tokLen": 3
417 // CHECK-NEXT: "range": {
418 // CHECK-NEXT: "begin": {
419 // CHECK-NEXT: "offset": {{[0-9]+}},
420 // CHECK-NEXT: "col": 3,
421 // CHECK-NEXT: "tokLen": 3
423 // CHECK-NEXT: "end": {
424 // CHECK-NEXT: "offset": {{[0-9]+}},
425 // CHECK-NEXT: "col": 3,
426 // CHECK-NEXT: "tokLen": 3
429 // CHECK-NEXT: "name": "Ten",
430 // CHECK-NEXT: "type": {
431 // CHECK-NEXT: "qualType": "H"
437 // CHECK-NOT: {{^}}Dumping
438 // CHECK: "kind": "EnumDecl",
439 // CHECK-NEXT: "loc": {
440 // CHECK-NEXT: "offset": {{[0-9]+}},
441 // CHECK-NEXT: "line": 28,
442 // CHECK-NEXT: "col": 12,
443 // CHECK-NEXT: "tokLen": 1
445 // CHECK-NEXT: "range": {
446 // CHECK-NEXT: "begin": {
447 // CHECK-NEXT: "offset": {{[0-9]+}},
448 // CHECK-NEXT: "col": 1,
449 // CHECK-NEXT: "tokLen": 4
451 // CHECK-NEXT: "end": {
452 // CHECK-NEXT: "offset": {{[0-9]+}},
453 // CHECK-NEXT: "line": 31,
454 // CHECK-NEXT: "col": 1,
455 // CHECK-NEXT: "tokLen": 1
458 // CHECK-NEXT: "name": "I",
459 // CHECK-NEXT: "fixedUnderlyingType": {
460 // CHECK-NEXT: "qualType": "int"
462 // CHECK-NEXT: "scopedEnumTag": "class",
463 // CHECK-NEXT: "inner": [
465 // CHECK-NEXT: "id": "0x{{.*}}",
466 // CHECK-NEXT: "kind": "EnumConstantDecl",
467 // CHECK-NEXT: "loc": {
468 // CHECK-NEXT: "offset": {{[0-9]+}},
469 // CHECK-NEXT: "line": 29,
470 // CHECK-NEXT: "col": 3,
471 // CHECK-NEXT: "tokLen": 6
473 // CHECK-NEXT: "range": {
474 // CHECK-NEXT: "begin": {
475 // CHECK-NEXT: "offset": {{[0-9]+}},
476 // CHECK-NEXT: "col": 3,
477 // CHECK-NEXT: "tokLen": 6
479 // CHECK-NEXT: "end": {
480 // CHECK-NEXT: "offset": {{[0-9]+}},
481 // CHECK-NEXT: "col": 3,
482 // CHECK-NEXT: "tokLen": 6
485 // CHECK-NEXT: "name": "Eleven",
486 // CHECK-NEXT: "type": {
487 // CHECK-NEXT: "qualType": "I"
491 // CHECK-NEXT: "id": "0x{{.*}}",
492 // CHECK-NEXT: "kind": "EnumConstantDecl",
493 // CHECK-NEXT: "loc": {
494 // CHECK-NEXT: "offset": {{[0-9]+}},
495 // CHECK-NEXT: "line": 30,
496 // CHECK-NEXT: "col": 3,
497 // CHECK-NEXT: "tokLen": 6
499 // CHECK-NEXT: "range": {
500 // CHECK-NEXT: "begin": {
501 // CHECK-NEXT: "offset": {{[0-9]+}},
502 // CHECK-NEXT: "col": 3,
503 // CHECK-NEXT: "tokLen": 6
505 // CHECK-NEXT: "end": {
506 // CHECK-NEXT: "offset": {{[0-9]+}},
507 // CHECK-NEXT: "col": 3,
508 // CHECK-NEXT: "tokLen": 6
511 // CHECK-NEXT: "name": "Twelve",
512 // CHECK-NEXT: "type": {
513 // CHECK-NEXT: "qualType": "I"