1 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s
15 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
18 // CHECK-NOT: {{^}}Dumping
19 // CHECK: "kind": "TranslationUnitDecl",
20 // CHECK-NEXT: "loc": {},
21 // CHECK-NEXT: "range": {
22 // CHECK-NEXT: "begin": {},
23 // CHECK-NEXT: "end": {}
25 // CHECK-NEXT: "inner": [
27 // CHECK-NEXT: "id": "0x{{.*}}",
28 // CHECK-NEXT: "kind": "TypedefDecl",
29 // CHECK-NEXT: "loc": {},
30 // CHECK-NEXT: "range": {
31 // CHECK-NEXT: "begin": {},
32 // CHECK-NEXT: "end": {}
34 // CHECK-NEXT: "isImplicit": true,
35 // CHECK-NEXT: "name": "__int128_t",
36 // CHECK-NEXT: "type": {
37 // CHECK-NEXT: "qualType": "__int128"
39 // CHECK-NEXT: "inner": [
41 // CHECK-NEXT: "id": "0x{{.*}}",
42 // CHECK-NEXT: "kind": "BuiltinType",
43 // CHECK-NEXT: "type": {
44 // CHECK-NEXT: "qualType": "__int128"
50 // CHECK-NEXT: "id": "0x{{.*}}",
51 // CHECK-NEXT: "kind": "TypedefDecl",
52 // CHECK-NEXT: "loc": {},
53 // CHECK-NEXT: "range": {
54 // CHECK-NEXT: "begin": {},
55 // CHECK-NEXT: "end": {}
57 // CHECK-NEXT: "isImplicit": true,
58 // CHECK-NEXT: "name": "__uint128_t",
59 // CHECK-NEXT: "type": {
60 // CHECK-NEXT: "qualType": "unsigned __int128"
62 // CHECK-NEXT: "inner": [
64 // CHECK-NEXT: "id": "0x{{.*}}",
65 // CHECK-NEXT: "kind": "BuiltinType",
66 // CHECK-NEXT: "type": {
67 // CHECK-NEXT: "qualType": "unsigned __int128"
73 // CHECK-NEXT: "id": "0x{{.*}}",
74 // CHECK-NEXT: "kind": "TypedefDecl",
75 // CHECK-NEXT: "loc": {},
76 // CHECK-NEXT: "range": {
77 // CHECK-NEXT: "begin": {},
78 // CHECK-NEXT: "end": {}
80 // CHECK-NEXT: "isImplicit": true,
81 // CHECK-NEXT: "name": "__NSConstantString",
82 // CHECK-NEXT: "type": {
83 // CHECK-NEXT: "qualType": "__NSConstantString_tag"
85 // CHECK-NEXT: "inner": [
87 // CHECK-NEXT: "id": "0x{{.*}}",
88 // CHECK-NEXT: "kind": "RecordType",
89 // CHECK-NEXT: "type": {
90 // CHECK-NEXT: "qualType": "__NSConstantString_tag"
92 // CHECK-NEXT: "decl": {
93 // CHECK-NEXT: "id": "0x{{.*}}",
94 // CHECK-NEXT: "kind": "CXXRecordDecl",
95 // CHECK-NEXT: "name": "__NSConstantString_tag"
101 // CHECK-NEXT: "id": "0x{{.*}}",
102 // CHECK-NEXT: "kind": "TypedefDecl",
103 // CHECK-NEXT: "loc": {},
104 // CHECK-NEXT: "range": {
105 // CHECK-NEXT: "begin": {},
106 // CHECK-NEXT: "end": {}
108 // CHECK-NEXT: "isImplicit": true,
109 // CHECK-NEXT: "name": "__builtin_ms_va_list",
110 // CHECK-NEXT: "type": {
111 // CHECK-NEXT: "qualType": "char *"
113 // CHECK-NEXT: "inner": [
115 // CHECK-NEXT: "id": "0x{{.*}}",
116 // CHECK-NEXT: "kind": "PointerType",
117 // CHECK-NEXT: "type": {
118 // CHECK-NEXT: "qualType": "char *"
120 // CHECK-NEXT: "inner": [
122 // CHECK-NEXT: "id": "0x{{.*}}",
123 // CHECK-NEXT: "kind": "BuiltinType",
124 // CHECK-NEXT: "type": {
125 // CHECK-NEXT: "qualType": "char"
133 // CHECK-NEXT: "id": "0x{{.*}}",
134 // CHECK-NEXT: "kind": "TypedefDecl",
135 // CHECK-NEXT: "loc": {},
136 // CHECK-NEXT: "range": {
137 // CHECK-NEXT: "begin": {},
138 // CHECK-NEXT: "end": {}
140 // CHECK-NEXT: "isImplicit": true,
141 // CHECK-NEXT: "name": "__builtin_va_list",
142 // CHECK-NEXT: "type": {
143 // CHECK-NEXT: "qualType": "__va_list_tag[1]"
145 // CHECK-NEXT: "inner": [
147 // CHECK-NEXT: "id": "0x{{.*}}",
148 // CHECK-NEXT: "kind": "ConstantArrayType",
149 // CHECK-NEXT: "type": {
150 // CHECK-NEXT: "qualType": "__va_list_tag[1]"
152 // CHECK-NEXT: "size": 1,
153 // CHECK-NEXT: "inner": [
155 // CHECK-NEXT: "id": "0x{{.*}}",
156 // CHECK-NEXT: "kind": "RecordType",
157 // CHECK-NEXT: "type": {
158 // CHECK-NEXT: "qualType": "__va_list_tag"
160 // CHECK-NEXT: "decl": {
161 // CHECK-NEXT: "id": "0x{{.*}}",
162 // CHECK-NEXT: "kind": "CXXRecordDecl",
163 // CHECK-NEXT: "name": "__va_list_tag"
171 // CHECK-NEXT: "id": "0x{{.*}}",
172 // CHECK-NEXT: "kind": "CXXRecordDecl",
173 // CHECK-NEXT: "loc": {
174 // CHECK-NEXT: "offset": 99,
175 // CHECK-NEXT: "file": "{{.*}}",
176 // CHECK-NEXT: "line": 3,
177 // CHECK-NEXT: "col": 8,
178 // CHECK-NEXT: "tokLen": 1
180 // CHECK-NEXT: "range": {
181 // CHECK-NEXT: "begin": {
182 // CHECK-NEXT: "offset": 92,
183 // CHECK-NEXT: "col": 1,
184 // CHECK-NEXT: "tokLen": 6
186 // CHECK-NEXT: "end": {
187 // CHECK-NEXT: "offset": 117,
188 // CHECK-NEXT: "line": 5,
189 // CHECK-NEXT: "col": 1,
190 // CHECK-NEXT: "tokLen": 1
193 // CHECK-NEXT: "isReferenced": true,
194 // CHECK-NEXT: "name": "A",
195 // CHECK-NEXT: "tagUsed": "struct",
196 // CHECK-NEXT: "completeDefinition": true,
197 // CHECK-NEXT: "definitionData": {
198 // CHECK-NEXT: "canPassInRegisters": true,
199 // CHECK-NEXT: "copyAssign": {
200 // CHECK-NEXT: "hasConstParam": true,
201 // CHECK-NEXT: "implicitHasConstParam": true,
202 // CHECK-NEXT: "needsImplicit": true,
203 // CHECK-NEXT: "simple": true,
204 // CHECK-NEXT: "trivial": true
206 // CHECK-NEXT: "copyCtor": {
207 // CHECK-NEXT: "hasConstParam": true,
208 // CHECK-NEXT: "implicitHasConstParam": true,
209 // CHECK-NEXT: "needsImplicit": true,
210 // CHECK-NEXT: "simple": true,
211 // CHECK-NEXT: "trivial": true
213 // CHECK-NEXT: "defaultCtor": {
214 // CHECK-NEXT: "exists": true,
215 // CHECK-NEXT: "needsImplicit": true,
216 // CHECK-NEXT: "trivial": true
218 // CHECK-NEXT: "dtor": {
219 // CHECK-NEXT: "irrelevant": true,
220 // CHECK-NEXT: "simple": true,
221 // CHECK-NEXT: "trivial": true
223 // CHECK-NEXT: "isAggregate": true,
224 // CHECK-NEXT: "isLiteral": true,
225 // CHECK-NEXT: "isPOD": true,
226 // CHECK-NEXT: "isStandardLayout": true,
227 // CHECK-NEXT: "isTrivial": true,
228 // CHECK-NEXT: "isTriviallyCopyable": true,
229 // CHECK-NEXT: "moveAssign": {
230 // CHECK-NEXT: "exists": true,
231 // CHECK-NEXT: "needsImplicit": true,
232 // CHECK-NEXT: "simple": true,
233 // CHECK-NEXT: "trivial": true
235 // CHECK-NEXT: "moveCtor": {
236 // CHECK-NEXT: "exists": true,
237 // CHECK-NEXT: "needsImplicit": true,
238 // CHECK-NEXT: "simple": true,
239 // CHECK-NEXT: "trivial": true
242 // CHECK-NEXT: "inner": [
244 // CHECK-NEXT: "id": "0x{{.*}}",
245 // CHECK-NEXT: "kind": "CXXRecordDecl",
246 // CHECK-NEXT: "loc": {
247 // CHECK-NEXT: "offset": 99,
248 // CHECK-NEXT: "line": 3,
249 // CHECK-NEXT: "col": 8,
250 // CHECK-NEXT: "tokLen": 1
252 // CHECK-NEXT: "range": {
253 // CHECK-NEXT: "begin": {
254 // CHECK-NEXT: "offset": 92,
255 // CHECK-NEXT: "col": 1,
256 // CHECK-NEXT: "tokLen": 6
258 // CHECK-NEXT: "end": {
259 // CHECK-NEXT: "offset": 99,
260 // CHECK-NEXT: "col": 8,
261 // CHECK-NEXT: "tokLen": 1
264 // CHECK-NEXT: "isImplicit": true,
265 // CHECK-NEXT: "name": "A",
266 // CHECK-NEXT: "tagUsed": "struct"
269 // CHECK-NEXT: "id": "0x{{.*}}",
270 // CHECK-NEXT: "kind": "FieldDecl",
271 // CHECK-NEXT: "loc": {
272 // CHECK-NEXT: "offset": 109,
273 // CHECK-NEXT: "line": 4,
274 // CHECK-NEXT: "col": 7,
275 // CHECK-NEXT: "tokLen": 3
277 // CHECK-NEXT: "range": {
278 // CHECK-NEXT: "begin": {
279 // CHECK-NEXT: "offset": 105,
280 // CHECK-NEXT: "col": 3,
281 // CHECK-NEXT: "tokLen": 3
283 // CHECK-NEXT: "end": {
284 // CHECK-NEXT: "offset": 114,
285 // CHECK-NEXT: "col": 12,
286 // CHECK-NEXT: "tokLen": 1
289 // CHECK-NEXT: "name": "arr",
290 // CHECK-NEXT: "type": {
291 // CHECK-NEXT: "qualType": "int[1]"
295 // CHECK-NEXT: "id": "0x{{.*}}",
296 // CHECK-NEXT: "kind": "CXXDestructorDecl",
297 // CHECK-NEXT: "loc": {
298 // CHECK-NEXT: "offset": 99,
299 // CHECK-NEXT: "line": 3,
300 // CHECK-NEXT: "col": 8,
301 // CHECK-NEXT: "tokLen": 1
303 // CHECK-NEXT: "range": {
304 // CHECK-NEXT: "begin": {
305 // CHECK-NEXT: "offset": 99,
306 // CHECK-NEXT: "col": 8,
307 // CHECK-NEXT: "tokLen": 1
309 // CHECK-NEXT: "end": {
310 // CHECK-NEXT: "offset": 99,
311 // CHECK-NEXT: "col": 8,
312 // CHECK-NEXT: "tokLen": 1
315 // CHECK-NEXT: "isImplicit": true,
316 // CHECK-NEXT: "isReferenced": true,
317 // CHECK-NEXT: "name": "~A",
318 // CHECK-NEXT: "mangledName": "_ZN1AD1Ev",
319 // CHECK-NEXT: "type": {
320 // CHECK-NEXT: "qualType": "void () noexcept"
322 // CHECK-NEXT: "inline": true,
323 // CHECK-NEXT: "explicitlyDefaulted": "default"
328 // CHECK-NEXT: "id": "0x{{.*}}",
329 // CHECK-NEXT: "kind": "CXXRecordDecl",
330 // CHECK-NEXT: "loc": {
331 // CHECK-NEXT: "offset": 128,
332 // CHECK-NEXT: "line": 7,
333 // CHECK-NEXT: "col": 8,
334 // CHECK-NEXT: "tokLen": 1
336 // CHECK-NEXT: "range": {
337 // CHECK-NEXT: "begin": {
338 // CHECK-NEXT: "offset": 121,
339 // CHECK-NEXT: "col": 1,
340 // CHECK-NEXT: "tokLen": 6
342 // CHECK-NEXT: "end": {
343 // CHECK-NEXT: "offset": 155,
344 // CHECK-NEXT: "line": 9,
345 // CHECK-NEXT: "col": 1,
346 // CHECK-NEXT: "tokLen": 1
349 // CHECK-NEXT: "isReferenced": true,
350 // CHECK-NEXT: "name": "B",
351 // CHECK-NEXT: "tagUsed": "struct",
352 // CHECK-NEXT: "completeDefinition": true,
353 // CHECK-NEXT: "definitionData": {
354 // CHECK-NEXT: "canConstDefaultInit": true,
355 // CHECK-NEXT: "canPassInRegisters": true,
356 // CHECK-NEXT: "copyAssign": {
357 // CHECK-NEXT: "hasConstParam": true,
358 // CHECK-NEXT: "implicitHasConstParam": true,
359 // CHECK-NEXT: "needsImplicit": true,
360 // CHECK-NEXT: "trivial": true
362 // CHECK-NEXT: "copyCtor": {
363 // CHECK-NEXT: "hasConstParam": true,
364 // CHECK-NEXT: "implicitHasConstParam": true,
365 // CHECK-NEXT: "needsImplicit": true,
366 // CHECK-NEXT: "simple": true,
367 // CHECK-NEXT: "trivial": true
369 // CHECK-NEXT: "defaultCtor": {
370 // CHECK-NEXT: "defaultedIsConstexpr": true,
371 // CHECK-NEXT: "exists": true,
372 // CHECK-NEXT: "isConstexpr": true,
373 // CHECK-NEXT: "needsImplicit": true,
374 // CHECK-NEXT: "nonTrivial": true
376 // CHECK-NEXT: "dtor": {
377 // CHECK-NEXT: "irrelevant": true,
378 // CHECK-NEXT: "needsImplicit": true,
379 // CHECK-NEXT: "simple": true,
380 // CHECK-NEXT: "trivial": true
382 // CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,
383 // CHECK-NEXT: "isAggregate": true,
384 // CHECK-NEXT: "isLiteral": true,
385 // CHECK-NEXT: "isTriviallyCopyable": true,
386 // CHECK-NEXT: "moveAssign": {
387 // CHECK-NEXT: "exists": true,
388 // CHECK-NEXT: "needsImplicit": true,
389 // CHECK-NEXT: "trivial": true
391 // CHECK-NEXT: "moveCtor": {
392 // CHECK-NEXT: "exists": true,
393 // CHECK-NEXT: "needsImplicit": true,
394 // CHECK-NEXT: "simple": true,
395 // CHECK-NEXT: "trivial": true
398 // CHECK-NEXT: "inner": [
400 // CHECK-NEXT: "id": "0x{{.*}}",
401 // CHECK-NEXT: "kind": "CXXRecordDecl",
402 // CHECK-NEXT: "loc": {
403 // CHECK-NEXT: "offset": 128,
404 // CHECK-NEXT: "line": 7,
405 // CHECK-NEXT: "col": 8,
406 // CHECK-NEXT: "tokLen": 1
408 // CHECK-NEXT: "range": {
409 // CHECK-NEXT: "begin": {
410 // CHECK-NEXT: "offset": 121,
411 // CHECK-NEXT: "col": 1,
412 // CHECK-NEXT: "tokLen": 6
414 // CHECK-NEXT: "end": {
415 // CHECK-NEXT: "offset": 128,
416 // CHECK-NEXT: "col": 8,
417 // CHECK-NEXT: "tokLen": 1
420 // CHECK-NEXT: "isImplicit": true,
421 // CHECK-NEXT: "name": "B",
422 // CHECK-NEXT: "tagUsed": "struct"
425 // CHECK-NEXT: "id": "0x{{.*}}",
426 // CHECK-NEXT: "kind": "FieldDecl",
427 // CHECK-NEXT: "loc": {
428 // CHECK-NEXT: "offset": 143,
429 // CHECK-NEXT: "line": 8,
430 // CHECK-NEXT: "col": 12,
431 // CHECK-NEXT: "tokLen": 1
433 // CHECK-NEXT: "range": {
434 // CHECK-NEXT: "begin": {
435 // CHECK-NEXT: "offset": 134,
436 // CHECK-NEXT: "col": 3,
437 // CHECK-NEXT: "tokLen": 5
439 // CHECK-NEXT: "end": {
440 // CHECK-NEXT: "offset": 152,
441 // CHECK-NEXT: "col": 21,
442 // CHECK-NEXT: "tokLen": 1
445 // CHECK-NEXT: "name": "a",
446 // CHECK-NEXT: "type": {
447 // CHECK-NEXT: "qualType": "const A &"
449 // CHECK-NEXT: "hasInClassInitializer": true,
450 // CHECK-NEXT: "inner": [
452 // CHECK-NEXT: "id": "0x{{.*}}",
453 // CHECK-NEXT: "kind": "ExprWithCleanups",
454 // CHECK-NEXT: "range": {
455 // CHECK-NEXT: "begin": {
456 // CHECK-NEXT: "offset": 147,
457 // CHECK-NEXT: "col": 16,
458 // CHECK-NEXT: "tokLen": 1
460 // CHECK-NEXT: "end": {
461 // CHECK-NEXT: "offset": 152,
462 // CHECK-NEXT: "col": 21,
463 // CHECK-NEXT: "tokLen": 1
466 // CHECK-NEXT: "type": {
467 // CHECK-NEXT: "qualType": "const A"
469 // CHECK-NEXT: "valueCategory": "lvalue",
470 // CHECK-NEXT: "inner": [
472 // CHECK-NEXT: "id": "0x{{.*}}",
473 // CHECK-NEXT: "kind": "MaterializeTemporaryExpr",
474 // CHECK-NEXT: "range": {
475 // CHECK-NEXT: "begin": {
476 // CHECK-NEXT: "offset": 147,
477 // CHECK-NEXT: "col": 16,
478 // CHECK-NEXT: "tokLen": 1
480 // CHECK-NEXT: "end": {
481 // CHECK-NEXT: "offset": 152,
482 // CHECK-NEXT: "col": 21,
483 // CHECK-NEXT: "tokLen": 1
486 // CHECK-NEXT: "type": {
487 // CHECK-NEXT: "qualType": "const A"
489 // CHECK-NEXT: "valueCategory": "lvalue",
490 // CHECK-NEXT: "extendingDecl": {
491 // CHECK-NEXT: "id": "0x{{.*}}",
492 // CHECK-NEXT: "kind": "FieldDecl",
493 // CHECK-NEXT: "name": "a",
494 // CHECK-NEXT: "type": {
495 // CHECK-NEXT: "qualType": "const A &"
498 // CHECK-NEXT: "storageDuration": "automatic",
499 // CHECK-NEXT: "boundToLValueRef": true,
500 // CHECK-NEXT: "inner": [
502 // CHECK-NEXT: "id": "0x{{.*}}",
503 // CHECK-NEXT: "kind": "ImplicitCastExpr",
504 // CHECK-NEXT: "range": {
505 // CHECK-NEXT: "begin": {
506 // CHECK-NEXT: "offset": 147,
507 // CHECK-NEXT: "col": 16,
508 // CHECK-NEXT: "tokLen": 1
510 // CHECK-NEXT: "end": {
511 // CHECK-NEXT: "offset": 152,
512 // CHECK-NEXT: "col": 21,
513 // CHECK-NEXT: "tokLen": 1
516 // CHECK-NEXT: "type": {
517 // CHECK-NEXT: "qualType": "const A"
519 // CHECK-NEXT: "valueCategory": "prvalue",
520 // CHECK-NEXT: "castKind": "NoOp",
521 // CHECK-NEXT: "inner": [
523 // CHECK-NEXT: "id": "0x{{.*}}",
524 // CHECK-NEXT: "kind": "CXXFunctionalCastExpr",
525 // CHECK-NEXT: "range": {
526 // CHECK-NEXT: "begin": {
527 // CHECK-NEXT: "offset": 147,
528 // CHECK-NEXT: "col": 16,
529 // CHECK-NEXT: "tokLen": 1
531 // CHECK-NEXT: "end": {
532 // CHECK-NEXT: "offset": 152,
533 // CHECK-NEXT: "col": 21,
534 // CHECK-NEXT: "tokLen": 1
537 // CHECK-NEXT: "type": {
538 // CHECK-NEXT: "qualType": "A"
540 // CHECK-NEXT: "valueCategory": "prvalue",
541 // CHECK-NEXT: "castKind": "NoOp",
542 // CHECK-NEXT: "inner": [
544 // CHECK-NEXT: "id": "0x{{.*}}",
545 // CHECK-NEXT: "kind": "InitListExpr",
546 // CHECK-NEXT: "range": {
547 // CHECK-NEXT: "begin": {
548 // CHECK-NEXT: "offset": 148,
549 // CHECK-NEXT: "col": 17,
550 // CHECK-NEXT: "tokLen": 1
552 // CHECK-NEXT: "end": {
553 // CHECK-NEXT: "offset": 152,
554 // CHECK-NEXT: "col": 21,
555 // CHECK-NEXT: "tokLen": 1
558 // CHECK-NEXT: "type": {
559 // CHECK-NEXT: "qualType": "A"
561 // CHECK-NEXT: "valueCategory": "prvalue",
562 // CHECK-NEXT: "inner": [
564 // CHECK-NEXT: "id": "0x{{.*}}",
565 // CHECK-NEXT: "kind": "InitListExpr",
566 // CHECK-NEXT: "range": {
567 // CHECK-NEXT: "begin": {
568 // CHECK-NEXT: "offset": 149,
569 // CHECK-NEXT: "col": 18,
570 // CHECK-NEXT: "tokLen": 1
572 // CHECK-NEXT: "end": {
573 // CHECK-NEXT: "offset": 151,
574 // CHECK-NEXT: "col": 20,
575 // CHECK-NEXT: "tokLen": 1
578 // CHECK-NEXT: "type": {
579 // CHECK-NEXT: "qualType": "int[1]"
581 // CHECK-NEXT: "valueCategory": "prvalue",
582 // CHECK-NEXT: "inner": [
584 // CHECK-NEXT: "id": "0x{{.*}}",
585 // CHECK-NEXT: "kind": "IntegerLiteral",
586 // CHECK-NEXT: "range": {
587 // CHECK-NEXT: "begin": {
588 // CHECK-NEXT: "offset": 150,
589 // CHECK-NEXT: "col": 19,
590 // CHECK-NEXT: "tokLen": 1
592 // CHECK-NEXT: "end": {
593 // CHECK-NEXT: "offset": 150,
594 // CHECK-NEXT: "col": 19,
595 // CHECK-NEXT: "tokLen": 1
598 // CHECK-NEXT: "type": {
599 // CHECK-NEXT: "qualType": "int"
601 // CHECK-NEXT: "valueCategory": "prvalue",
602 // CHECK-NEXT: "value": "0"
621 // CHECK-NEXT: "id": "0x{{.*}}",
622 // CHECK-NEXT: "kind": "FunctionDecl",
623 // CHECK-NEXT: "loc": {
624 // CHECK-NEXT: "offset": 164,
625 // CHECK-NEXT: "line": 11,
626 // CHECK-NEXT: "col": 6,
627 // CHECK-NEXT: "tokLen": 4
629 // CHECK-NEXT: "range": {
630 // CHECK-NEXT: "begin": {
631 // CHECK-NEXT: "offset": 159,
632 // CHECK-NEXT: "col": 1,
633 // CHECK-NEXT: "tokLen": 4
635 // CHECK-NEXT: "end": {
636 // CHECK-NEXT: "offset": 182,
637 // CHECK-NEXT: "line": 13,
638 // CHECK-NEXT: "col": 1,
639 // CHECK-NEXT: "tokLen": 1
642 // CHECK-NEXT: "name": "test",
643 // CHECK-NEXT: "mangledName": "_Z4testv",
644 // CHECK-NEXT: "type": {
645 // CHECK-NEXT: "qualType": "void ()"
647 // CHECK-NEXT: "inner": [
649 // CHECK-NEXT: "id": "0x{{.*}}",
650 // CHECK-NEXT: "kind": "CompoundStmt",
651 // CHECK-NEXT: "range": {
652 // CHECK-NEXT: "begin": {
653 // CHECK-NEXT: "offset": 171,
654 // CHECK-NEXT: "line": 11,
655 // CHECK-NEXT: "col": 13,
656 // CHECK-NEXT: "tokLen": 1
658 // CHECK-NEXT: "end": {
659 // CHECK-NEXT: "offset": 182,
660 // CHECK-NEXT: "line": 13,
661 // CHECK-NEXT: "col": 1,
662 // CHECK-NEXT: "tokLen": 1
665 // CHECK-NEXT: "inner": [
667 // CHECK-NEXT: "id": "0x{{.*}}",
668 // CHECK-NEXT: "kind": "DeclStmt",
669 // CHECK-NEXT: "range": {
670 // CHECK-NEXT: "begin": {
671 // CHECK-NEXT: "offset": 175,
672 // CHECK-NEXT: "line": 12,
673 // CHECK-NEXT: "col": 3,
674 // CHECK-NEXT: "tokLen": 1
676 // CHECK-NEXT: "end": {
677 // CHECK-NEXT: "offset": 180,
678 // CHECK-NEXT: "col": 8,
679 // CHECK-NEXT: "tokLen": 1
682 // CHECK-NEXT: "inner": [
684 // CHECK-NEXT: "id": "0x{{.*}}",
685 // CHECK-NEXT: "kind": "VarDecl",
686 // CHECK-NEXT: "loc": {
687 // CHECK-NEXT: "offset": 177,
688 // CHECK-NEXT: "col": 5,
689 // CHECK-NEXT: "tokLen": 1
691 // CHECK-NEXT: "range": {
692 // CHECK-NEXT: "begin": {
693 // CHECK-NEXT: "offset": 175,
694 // CHECK-NEXT: "col": 3,
695 // CHECK-NEXT: "tokLen": 1
697 // CHECK-NEXT: "end": {
698 // CHECK-NEXT: "offset": 179,
699 // CHECK-NEXT: "col": 7,
700 // CHECK-NEXT: "tokLen": 1
703 // CHECK-NEXT: "name": "b",
704 // CHECK-NEXT: "type": {
705 // CHECK-NEXT: "qualType": "B"
707 // CHECK-NEXT: "init": "list",
708 // CHECK-NEXT: "inner": [
710 // CHECK-NEXT: "id": "0x{{.*}}",
711 // CHECK-NEXT: "kind": "InitListExpr",
712 // CHECK-NEXT: "range": {
713 // CHECK-NEXT: "begin": {
714 // CHECK-NEXT: "offset": 178,
715 // CHECK-NEXT: "col": 6,
716 // CHECK-NEXT: "tokLen": 1
718 // CHECK-NEXT: "end": {
719 // CHECK-NEXT: "offset": 179,
720 // CHECK-NEXT: "col": 7,
721 // CHECK-NEXT: "tokLen": 1
724 // CHECK-NEXT: "type": {
725 // CHECK-NEXT: "qualType": "B"
727 // CHECK-NEXT: "valueCategory": "prvalue",
728 // CHECK-NEXT: "inner": [
730 // CHECK-NEXT: "id": "0x{{.*}}",
731 // CHECK-NEXT: "kind": "CXXDefaultInitExpr",
732 // CHECK-NEXT: "range": {
733 // CHECK-NEXT: "begin": {
734 // CHECK-NEXT: "offset": 179,
735 // CHECK-NEXT: "col": 7,
736 // CHECK-NEXT: "tokLen": 1
738 // CHECK-NEXT: "end": {
739 // CHECK-NEXT: "offset": 179,
740 // CHECK-NEXT: "col": 7,
741 // CHECK-NEXT: "tokLen": 1
744 // CHECK-NEXT: "type": {
745 // CHECK-NEXT: "qualType": "const A"
747 // CHECK-NEXT: "valueCategory": "lvalue",
748 // CHECK-NEXT: "hasRewrittenInit": true,
749 // CHECK-NEXT: "inner": [
751 // CHECK-NEXT: "id": "0x{{.*}}",
752 // CHECK-NEXT: "kind": "ExprWithCleanups",
753 // CHECK-NEXT: "range": {
754 // CHECK-NEXT: "begin": {
755 // CHECK-NEXT: "offset": 147,
756 // CHECK-NEXT: "line": 8,
757 // CHECK-NEXT: "col": 16,
758 // CHECK-NEXT: "tokLen": 1
760 // CHECK-NEXT: "end": {
761 // CHECK-NEXT: "offset": 152,
762 // CHECK-NEXT: "col": 21,
763 // CHECK-NEXT: "tokLen": 1
766 // CHECK-NEXT: "type": {
767 // CHECK-NEXT: "qualType": "const A"
769 // CHECK-NEXT: "valueCategory": "lvalue",
770 // CHECK-NEXT: "inner": [
772 // CHECK-NEXT: "id": "0x{{.*}}",
773 // CHECK-NEXT: "kind": "MaterializeTemporaryExpr",
774 // CHECK-NEXT: "range": {
775 // CHECK-NEXT: "begin": {
776 // CHECK-NEXT: "offset": 147,
777 // CHECK-NEXT: "col": 16,
778 // CHECK-NEXT: "tokLen": 1
780 // CHECK-NEXT: "end": {
781 // CHECK-NEXT: "offset": 152,
782 // CHECK-NEXT: "col": 21,
783 // CHECK-NEXT: "tokLen": 1
786 // CHECK-NEXT: "type": {
787 // CHECK-NEXT: "qualType": "const A"
789 // CHECK-NEXT: "valueCategory": "lvalue",
790 // CHECK-NEXT: "extendingDecl": {
791 // CHECK-NEXT: "id": "0x{{.*}}",
792 // CHECK-NEXT: "kind": "VarDecl",
793 // CHECK-NEXT: "name": "b",
794 // CHECK-NEXT: "type": {
795 // CHECK-NEXT: "qualType": "B"
798 // CHECK-NEXT: "storageDuration": "automatic",
799 // CHECK-NEXT: "boundToLValueRef": true,
800 // CHECK-NEXT: "inner": [
802 // CHECK-NEXT: "id": "0x{{.*}}",
803 // CHECK-NEXT: "kind": "ImplicitCastExpr",
804 // CHECK-NEXT: "range": {
805 // CHECK-NEXT: "begin": {
806 // CHECK-NEXT: "offset": 147,
807 // CHECK-NEXT: "col": 16,
808 // CHECK-NEXT: "tokLen": 1
810 // CHECK-NEXT: "end": {
811 // CHECK-NEXT: "offset": 152,
812 // CHECK-NEXT: "col": 21,
813 // CHECK-NEXT: "tokLen": 1
816 // CHECK-NEXT: "type": {
817 // CHECK-NEXT: "qualType": "const A"
819 // CHECK-NEXT: "valueCategory": "prvalue",
820 // CHECK-NEXT: "castKind": "NoOp",
821 // CHECK-NEXT: "inner": [
823 // CHECK-NEXT: "id": "0x{{.*}}",
824 // CHECK-NEXT: "kind": "CXXFunctionalCastExpr",
825 // CHECK-NEXT: "range": {
826 // CHECK-NEXT: "begin": {
827 // CHECK-NEXT: "offset": 147,
828 // CHECK-NEXT: "col": 16,
829 // CHECK-NEXT: "tokLen": 1
831 // CHECK-NEXT: "end": {
832 // CHECK-NEXT: "offset": 152,
833 // CHECK-NEXT: "col": 21,
834 // CHECK-NEXT: "tokLen": 1
837 // CHECK-NEXT: "type": {
838 // CHECK-NEXT: "qualType": "A"
840 // CHECK-NEXT: "valueCategory": "prvalue",
841 // CHECK-NEXT: "castKind": "NoOp",
842 // CHECK-NEXT: "inner": [
844 // CHECK-NEXT: "id": "0x{{.*}}",
845 // CHECK-NEXT: "kind": "InitListExpr",
846 // CHECK-NEXT: "range": {
847 // CHECK-NEXT: "begin": {
848 // CHECK-NEXT: "offset": 148,
849 // CHECK-NEXT: "col": 17,
850 // CHECK-NEXT: "tokLen": 1
852 // CHECK-NEXT: "end": {
853 // CHECK-NEXT: "offset": 152,
854 // CHECK-NEXT: "col": 21,
855 // CHECK-NEXT: "tokLen": 1
858 // CHECK-NEXT: "type": {
859 // CHECK-NEXT: "qualType": "A"
861 // CHECK-NEXT: "valueCategory": "prvalue",
862 // CHECK-NEXT: "inner": [
864 // CHECK-NEXT: "id": "0x{{.*}}",
865 // CHECK-NEXT: "kind": "InitListExpr",
866 // CHECK-NEXT: "range": {
867 // CHECK-NEXT: "begin": {
868 // CHECK-NEXT: "offset": 149,
869 // CHECK-NEXT: "col": 18,
870 // CHECK-NEXT: "tokLen": 1
872 // CHECK-NEXT: "end": {
873 // CHECK-NEXT: "offset": 151,
874 // CHECK-NEXT: "col": 20,
875 // CHECK-NEXT: "tokLen": 1
878 // CHECK-NEXT: "type": {
879 // CHECK-NEXT: "qualType": "int[1]"
881 // CHECK-NEXT: "valueCategory": "prvalue",
882 // CHECK-NEXT: "inner": [
884 // CHECK-NEXT: "id": "0x{{.*}}",
885 // CHECK-NEXT: "kind": "IntegerLiteral",
886 // CHECK-NEXT: "range": {
887 // CHECK-NEXT: "begin": {
888 // CHECK-NEXT: "offset": 150,
889 // CHECK-NEXT: "col": 19,
890 // CHECK-NEXT: "tokLen": 1
892 // CHECK-NEXT: "end": {
893 // CHECK-NEXT: "offset": 150,
894 // CHECK-NEXT: "col": 19,
895 // CHECK-NEXT: "tokLen": 1
898 // CHECK-NEXT: "type": {
899 // CHECK-NEXT: "qualType": "int"
901 // CHECK-NEXT: "valueCategory": "prvalue",
902 // CHECK-NEXT: "value": "0"