1 // RUN: %clang_cc1 -triple x86_64-pc-win32 -Wno-unused -fblocks -fobjc-exceptions -ast-dump=json -ast-dump-filter Test %s | FileCheck %s
3 void TestBlockExpr(int x) {
7 void TestExprWithCleanup(int x) {
14 void TestObjCAtCatchStmt(void) {
22 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
25 // CHECK-NOT: {{^}}Dumping
26 // CHECK: "kind": "FunctionDecl",
27 // CHECK-NEXT: "loc": {
28 // CHECK-NEXT: "offset": {{[0-9]+}},
29 // CHECK-NEXT: "file": "{{.*}}",
30 // CHECK-NEXT: "line": 3,
31 // CHECK-NEXT: "col": 6,
32 // CHECK-NEXT: "tokLen": 13
34 // CHECK-NEXT: "range": {
35 // CHECK-NEXT: "begin": {
36 // CHECK-NEXT: "offset": {{[0-9]+}},
37 // CHECK-NEXT: "col": 1,
38 // CHECK-NEXT: "tokLen": 4
40 // CHECK-NEXT: "end": {
41 // CHECK-NEXT: "offset": {{[0-9]+}},
42 // CHECK-NEXT: "line": 5,
43 // CHECK-NEXT: "col": 1,
44 // CHECK-NEXT: "tokLen": 1
47 // CHECK-NEXT: "name": "TestBlockExpr",
48 // CHECK-NEXT: "mangledName": "TestBlockExpr",
49 // CHECK-NEXT: "type": {
50 // CHECK-NEXT: "qualType": "void (int)"
52 // CHECK-NEXT: "inner": [
54 // CHECK-NEXT: "id": "0x{{.*}}",
55 // CHECK-NEXT: "kind": "ParmVarDecl",
56 // CHECK-NEXT: "loc": {
57 // CHECK-NEXT: "offset": {{[0-9]+}},
58 // CHECK-NEXT: "line": 3,
59 // CHECK-NEXT: "col": 24,
60 // CHECK-NEXT: "tokLen": 1
62 // CHECK-NEXT: "range": {
63 // CHECK-NEXT: "begin": {
64 // CHECK-NEXT: "offset": {{[0-9]+}},
65 // CHECK-NEXT: "col": 20,
66 // CHECK-NEXT: "tokLen": 3
68 // CHECK-NEXT: "end": {
69 // CHECK-NEXT: "offset": {{[0-9]+}},
70 // CHECK-NEXT: "col": 24,
71 // CHECK-NEXT: "tokLen": 1
74 // CHECK-NEXT: "isUsed": true,
75 // CHECK-NEXT: "name": "x",
76 // CHECK-NEXT: "type": {
77 // CHECK-NEXT: "qualType": "int"
81 // CHECK-NEXT: "id": "0x{{.*}}",
82 // CHECK-NEXT: "kind": "CompoundStmt",
83 // CHECK-NEXT: "range": {
84 // CHECK-NEXT: "begin": {
85 // CHECK-NEXT: "offset": {{[0-9]+}},
86 // CHECK-NEXT: "col": 27,
87 // CHECK-NEXT: "tokLen": 1
89 // CHECK-NEXT: "end": {
90 // CHECK-NEXT: "offset": {{[0-9]+}},
91 // CHECK-NEXT: "line": 5,
92 // CHECK-NEXT: "col": 1,
93 // CHECK-NEXT: "tokLen": 1
96 // CHECK-NEXT: "inner": [
98 // CHECK-NEXT: "id": "0x{{.*}}",
99 // CHECK-NEXT: "kind": "ExprWithCleanups",
100 // CHECK-NEXT: "range": {
101 // CHECK-NEXT: "begin": {
102 // CHECK-NEXT: "offset": {{[0-9]+}},
103 // CHECK-NEXT: "line": 4,
104 // CHECK-NEXT: "col": 3,
105 // CHECK-NEXT: "tokLen": 1
107 // CHECK-NEXT: "end": {
108 // CHECK-NEXT: "offset": {{[0-9]+}},
109 // CHECK-NEXT: "col": 9,
110 // CHECK-NEXT: "tokLen": 1
113 // CHECK-NEXT: "type": {
114 // CHECK-NEXT: "qualType": "void (^)(void)"
116 // CHECK-NEXT: "valueCategory": "prvalue",
117 // CHECK-NEXT: "cleanupsHaveSideEffects": true,
118 // CHECK-NEXT: "cleanups": [
120 // CHECK-NEXT: "id": "0x{{.*}}",
121 // CHECK-NEXT: "kind": "BlockDecl"
124 // CHECK-NEXT: "inner": [
126 // CHECK-NEXT: "id": "0x{{.*}}",
127 // CHECK-NEXT: "kind": "BlockExpr",
128 // CHECK-NEXT: "range": {
129 // CHECK-NEXT: "begin": {
130 // CHECK-NEXT: "offset": {{[0-9]+}},
131 // CHECK-NEXT: "col": 3,
132 // CHECK-NEXT: "tokLen": 1
134 // CHECK-NEXT: "end": {
135 // CHECK-NEXT: "offset": {{[0-9]+}},
136 // CHECK-NEXT: "col": 9,
137 // CHECK-NEXT: "tokLen": 1
140 // CHECK-NEXT: "type": {
141 // CHECK-NEXT: "qualType": "void (^)(void)"
143 // CHECK-NEXT: "valueCategory": "prvalue",
144 // CHECK-NEXT: "inner": [
146 // CHECK-NEXT: "id": "0x{{.*}}",
147 // CHECK-NEXT: "kind": "BlockDecl",
148 // CHECK-NEXT: "loc": {
149 // CHECK-NEXT: "offset": {{[0-9]+}},
150 // CHECK-NEXT: "col": 3,
151 // CHECK-NEXT: "tokLen": 1
153 // CHECK-NEXT: "range": {
154 // CHECK-NEXT: "begin": {
155 // CHECK-NEXT: "offset": {{[0-9]+}},
156 // CHECK-NEXT: "col": 3,
157 // CHECK-NEXT: "tokLen": 1
159 // CHECK-NEXT: "end": {
160 // CHECK-NEXT: "offset": {{[0-9]+}},
161 // CHECK-NEXT: "col": 9,
162 // CHECK-NEXT: "tokLen": 1
165 // CHECK-NEXT: "inner": [
167 // CHECK-NEXT: "kind": "Capture",
168 // CHECK-NEXT: "var": {
169 // CHECK-NEXT: "id": "0x{{.*}}",
170 // CHECK-NEXT: "kind": "ParmVarDecl",
171 // CHECK-NEXT: "name": "x",
172 // CHECK-NEXT: "type": {
173 // CHECK-NEXT: "qualType": "int"
178 // CHECK-NEXT: "id": "0x{{.*}}",
179 // CHECK-NEXT: "kind": "CompoundStmt",
180 // CHECK-NEXT: "range": {
181 // CHECK-NEXT: "begin": {
182 // CHECK-NEXT: "offset": {{[0-9]+}},
183 // CHECK-NEXT: "col": 4,
184 // CHECK-NEXT: "tokLen": 1
186 // CHECK-NEXT: "end": {
187 // CHECK-NEXT: "offset": {{[0-9]+}},
188 // CHECK-NEXT: "col": 9,
189 // CHECK-NEXT: "tokLen": 1
192 // CHECK-NEXT: "inner": [
194 // CHECK-NEXT: "id": "0x{{.*}}",
195 // CHECK-NEXT: "kind": "ImplicitCastExpr",
196 // CHECK-NEXT: "range": {
197 // CHECK-NEXT: "begin": {
198 // CHECK-NEXT: "offset": {{[0-9]+}},
199 // CHECK-NEXT: "col": 6,
200 // CHECK-NEXT: "tokLen": 1
202 // CHECK-NEXT: "end": {
203 // CHECK-NEXT: "offset": {{[0-9]+}},
204 // CHECK-NEXT: "col": 6,
205 // CHECK-NEXT: "tokLen": 1
208 // CHECK-NEXT: "type": {
209 // CHECK-NEXT: "qualType": "int"
211 // CHECK-NEXT: "valueCategory": "prvalue",
212 // CHECK-NEXT: "castKind": "LValueToRValue",
213 // CHECK-NEXT: "inner": [
215 // CHECK-NEXT: "id": "0x{{.*}}",
216 // CHECK-NEXT: "kind": "DeclRefExpr",
217 // CHECK-NEXT: "range": {
218 // CHECK-NEXT: "begin": {
219 // CHECK-NEXT: "offset": {{[0-9]+}},
220 // CHECK-NEXT: "col": 6,
221 // CHECK-NEXT: "tokLen": 1
223 // CHECK-NEXT: "end": {
224 // CHECK-NEXT: "offset": {{[0-9]+}},
225 // CHECK-NEXT: "col": 6,
226 // CHECK-NEXT: "tokLen": 1
229 // CHECK-NEXT: "type": {
230 // CHECK-NEXT: "qualType": "const int"
232 // CHECK-NEXT: "valueCategory": "lvalue",
233 // CHECK-NEXT: "referencedDecl": {
234 // CHECK-NEXT: "id": "0x{{.*}}",
235 // CHECK-NEXT: "kind": "ParmVarDecl",
236 // CHECK-NEXT: "name": "x",
237 // CHECK-NEXT: "type": {
238 // CHECK-NEXT: "qualType": "int"
258 // CHECK-NOT: {{^}}Dumping
259 // CHECK: "kind": "FunctionDecl",
260 // CHECK-NEXT: "loc": {
261 // CHECK-NEXT: "offset": {{[0-9]+}},
262 // CHECK-NEXT: "file": "{{.*}}",
263 // CHECK-NEXT: "line": 7,
264 // CHECK-NEXT: "col": 6,
265 // CHECK-NEXT: "tokLen": 19
267 // CHECK-NEXT: "range": {
268 // CHECK-NEXT: "begin": {
269 // CHECK-NEXT: "offset": {{[0-9]+}},
270 // CHECK-NEXT: "col": 1,
271 // CHECK-NEXT: "tokLen": 4
273 // CHECK-NEXT: "end": {
274 // CHECK-NEXT: "offset": {{[0-9]+}},
275 // CHECK-NEXT: "line": 9,
276 // CHECK-NEXT: "col": 1,
277 // CHECK-NEXT: "tokLen": 1
280 // CHECK-NEXT: "name": "TestExprWithCleanup",
281 // CHECK-NEXT: "mangledName": "TestExprWithCleanup",
282 // CHECK-NEXT: "type": {
283 // CHECK-NEXT: "qualType": "void (int)"
285 // CHECK-NEXT: "inner": [
287 // CHECK-NEXT: "id": "0x{{.*}}",
288 // CHECK-NEXT: "kind": "ParmVarDecl",
289 // CHECK-NEXT: "loc": {
290 // CHECK-NEXT: "offset": {{[0-9]+}},
291 // CHECK-NEXT: "line": 7,
292 // CHECK-NEXT: "col": 30,
293 // CHECK-NEXT: "tokLen": 1
295 // CHECK-NEXT: "range": {
296 // CHECK-NEXT: "begin": {
297 // CHECK-NEXT: "offset": {{[0-9]+}},
298 // CHECK-NEXT: "col": 26,
299 // CHECK-NEXT: "tokLen": 3
301 // CHECK-NEXT: "end": {
302 // CHECK-NEXT: "offset": {{[0-9]+}},
303 // CHECK-NEXT: "col": 30,
304 // CHECK-NEXT: "tokLen": 1
307 // CHECK-NEXT: "isUsed": true,
308 // CHECK-NEXT: "name": "x",
309 // CHECK-NEXT: "type": {
310 // CHECK-NEXT: "qualType": "int"
314 // CHECK-NEXT: "id": "0x{{.*}}",
315 // CHECK-NEXT: "kind": "CompoundStmt",
316 // CHECK-NEXT: "range": {
317 // CHECK-NEXT: "begin": {
318 // CHECK-NEXT: "offset": {{[0-9]+}},
319 // CHECK-NEXT: "col": 33,
320 // CHECK-NEXT: "tokLen": 1
322 // CHECK-NEXT: "end": {
323 // CHECK-NEXT: "offset": {{[0-9]+}},
324 // CHECK-NEXT: "line": 9,
325 // CHECK-NEXT: "col": 1,
326 // CHECK-NEXT: "tokLen": 1
329 // CHECK-NEXT: "inner": [
331 // CHECK-NEXT: "id": "0x{{.*}}",
332 // CHECK-NEXT: "kind": "ExprWithCleanups",
333 // CHECK-NEXT: "range": {
334 // CHECK-NEXT: "begin": {
335 // CHECK-NEXT: "offset": {{[0-9]+}},
336 // CHECK-NEXT: "line": 8,
337 // CHECK-NEXT: "col": 3,
338 // CHECK-NEXT: "tokLen": 1
340 // CHECK-NEXT: "end": {
341 // CHECK-NEXT: "offset": {{[0-9]+}},
342 // CHECK-NEXT: "col": 9,
343 // CHECK-NEXT: "tokLen": 1
346 // CHECK-NEXT: "type": {
347 // CHECK-NEXT: "qualType": "void (^)(void)"
349 // CHECK-NEXT: "valueCategory": "prvalue",
350 // CHECK-NEXT: "cleanupsHaveSideEffects": true,
351 // CHECK-NEXT: "cleanups": [
353 // CHECK-NEXT: "id": "0x{{.*}}",
354 // CHECK-NEXT: "kind": "BlockDecl"
357 // CHECK-NEXT: "inner": [
359 // CHECK-NEXT: "id": "0x{{.*}}",
360 // CHECK-NEXT: "kind": "BlockExpr",
361 // CHECK-NEXT: "range": {
362 // CHECK-NEXT: "begin": {
363 // CHECK-NEXT: "offset": {{[0-9]+}},
364 // CHECK-NEXT: "col": 3,
365 // CHECK-NEXT: "tokLen": 1
367 // CHECK-NEXT: "end": {
368 // CHECK-NEXT: "offset": {{[0-9]+}},
369 // CHECK-NEXT: "col": 9,
370 // CHECK-NEXT: "tokLen": 1
373 // CHECK-NEXT: "type": {
374 // CHECK-NEXT: "qualType": "void (^)(void)"
376 // CHECK-NEXT: "valueCategory": "prvalue",
377 // CHECK-NEXT: "inner": [
379 // CHECK-NEXT: "id": "0x{{.*}}",
380 // CHECK-NEXT: "kind": "BlockDecl",
381 // CHECK-NEXT: "loc": {
382 // CHECK-NEXT: "offset": {{[0-9]+}},
383 // CHECK-NEXT: "col": 3,
384 // CHECK-NEXT: "tokLen": 1
386 // CHECK-NEXT: "range": {
387 // CHECK-NEXT: "begin": {
388 // CHECK-NEXT: "offset": {{[0-9]+}},
389 // CHECK-NEXT: "col": 3,
390 // CHECK-NEXT: "tokLen": 1
392 // CHECK-NEXT: "end": {
393 // CHECK-NEXT: "offset": {{[0-9]+}},
394 // CHECK-NEXT: "col": 9,
395 // CHECK-NEXT: "tokLen": 1
398 // CHECK-NEXT: "inner": [
400 // CHECK-NEXT: "kind": "Capture",
401 // CHECK-NEXT: "var": {
402 // CHECK-NEXT: "id": "0x{{.*}}",
403 // CHECK-NEXT: "kind": "ParmVarDecl",
404 // CHECK-NEXT: "name": "x",
405 // CHECK-NEXT: "type": {
406 // CHECK-NEXT: "qualType": "int"
411 // CHECK-NEXT: "id": "0x{{.*}}",
412 // CHECK-NEXT: "kind": "CompoundStmt",
413 // CHECK-NEXT: "range": {
414 // CHECK-NEXT: "begin": {
415 // CHECK-NEXT: "offset": {{[0-9]+}},
416 // CHECK-NEXT: "col": 4,
417 // CHECK-NEXT: "tokLen": 1
419 // CHECK-NEXT: "end": {
420 // CHECK-NEXT: "offset": {{[0-9]+}},
421 // CHECK-NEXT: "col": 9,
422 // CHECK-NEXT: "tokLen": 1
425 // CHECK-NEXT: "inner": [
427 // CHECK-NEXT: "id": "0x{{.*}}",
428 // CHECK-NEXT: "kind": "ImplicitCastExpr",
429 // CHECK-NEXT: "range": {
430 // CHECK-NEXT: "begin": {
431 // CHECK-NEXT: "offset": {{[0-9]+}},
432 // CHECK-NEXT: "col": 6,
433 // CHECK-NEXT: "tokLen": 1
435 // CHECK-NEXT: "end": {
436 // CHECK-NEXT: "offset": {{[0-9]+}},
437 // CHECK-NEXT: "col": 6,
438 // CHECK-NEXT: "tokLen": 1
441 // CHECK-NEXT: "type": {
442 // CHECK-NEXT: "qualType": "int"
444 // CHECK-NEXT: "valueCategory": "prvalue",
445 // CHECK-NEXT: "castKind": "LValueToRValue",
446 // CHECK-NEXT: "inner": [
448 // CHECK-NEXT: "id": "0x{{.*}}",
449 // CHECK-NEXT: "kind": "DeclRefExpr",
450 // CHECK-NEXT: "range": {
451 // CHECK-NEXT: "begin": {
452 // CHECK-NEXT: "offset": {{[0-9]+}},
453 // CHECK-NEXT: "col": 6,
454 // CHECK-NEXT: "tokLen": 1
456 // CHECK-NEXT: "end": {
457 // CHECK-NEXT: "offset": {{[0-9]+}},
458 // CHECK-NEXT: "col": 6,
459 // CHECK-NEXT: "tokLen": 1
462 // CHECK-NEXT: "type": {
463 // CHECK-NEXT: "qualType": "const int"
465 // CHECK-NEXT: "valueCategory": "lvalue",
466 // CHECK-NEXT: "referencedDecl": {
467 // CHECK-NEXT: "id": "0x{{.*}}",
468 // CHECK-NEXT: "kind": "ParmVarDecl",
469 // CHECK-NEXT: "name": "x",
470 // CHECK-NEXT: "type": {
471 // CHECK-NEXT: "qualType": "int"
491 // CHECK-NOT: {{^}}Dumping
492 // CHECK: "kind": "FunctionDecl",
493 // CHECK-NEXT: "loc": {
494 // CHECK-NEXT: "offset": {{[0-9]+}},
495 // CHECK-NEXT: "file": "{{.*}}",
496 // CHECK-NEXT: "line": 14,
497 // CHECK-NEXT: "col": 6,
498 // CHECK-NEXT: "tokLen": 19
500 // CHECK-NEXT: "range": {
501 // CHECK-NEXT: "begin": {
502 // CHECK-NEXT: "offset": {{[0-9]+}},
503 // CHECK-NEXT: "col": 1,
504 // CHECK-NEXT: "tokLen": 4
506 // CHECK-NEXT: "end": {
507 // CHECK-NEXT: "offset": {{[0-9]+}},
508 // CHECK-NEXT: "line": 20,
509 // CHECK-NEXT: "col": 1,
510 // CHECK-NEXT: "tokLen": 1
513 // CHECK-NEXT: "name": "TestObjCAtCatchStmt",
514 // CHECK-NEXT: "mangledName": "TestObjCAtCatchStmt",
515 // CHECK-NEXT: "type": {
516 // CHECK-NEXT: "qualType": "void (void)"
518 // CHECK-NEXT: "inner": [
520 // CHECK-NEXT: "id": "0x{{.*}}",
521 // CHECK-NEXT: "kind": "CompoundStmt",
522 // CHECK-NEXT: "range": {
523 // CHECK-NEXT: "begin": {
524 // CHECK-NEXT: "offset": {{[0-9]+}},
525 // CHECK-NEXT: "line": 14,
526 // CHECK-NEXT: "col": 32,
527 // CHECK-NEXT: "tokLen": 1
529 // CHECK-NEXT: "end": {
530 // CHECK-NEXT: "offset": {{[0-9]+}},
531 // CHECK-NEXT: "line": 20,
532 // CHECK-NEXT: "col": 1,
533 // CHECK-NEXT: "tokLen": 1
536 // CHECK-NEXT: "inner": [
538 // CHECK-NEXT: "id": "0x{{.*}}",
539 // CHECK-NEXT: "kind": "ObjCAtTryStmt",
540 // CHECK-NEXT: "range": {
541 // CHECK-NEXT: "begin": {
542 // CHECK-NEXT: "offset": {{[0-9]+}},
543 // CHECK-NEXT: "line": 15,
544 // CHECK-NEXT: "col": 3,
545 // CHECK-NEXT: "tokLen": 1
547 // CHECK-NEXT: "end": {
548 // CHECK-NEXT: "offset": {{[0-9]+}},
549 // CHECK-NEXT: "line": 19,
550 // CHECK-NEXT: "col": 3,
551 // CHECK-NEXT: "tokLen": 1
554 // CHECK-NEXT: "inner": [
556 // CHECK-NEXT: "id": "0x{{.*}}",
557 // CHECK-NEXT: "kind": "CompoundStmt",
558 // CHECK-NEXT: "range": {
559 // CHECK-NEXT: "begin": {
560 // CHECK-NEXT: "offset": {{[0-9]+}},
561 // CHECK-NEXT: "line": 15,
562 // CHECK-NEXT: "col": 8,
563 // CHECK-NEXT: "tokLen": 1
565 // CHECK-NEXT: "end": {
566 // CHECK-NEXT: "offset": {{[0-9]+}},
567 // CHECK-NEXT: "line": 16,
568 // CHECK-NEXT: "col": 3,
569 // CHECK-NEXT: "tokLen": 1
574 // CHECK-NEXT: "id": "0x{{.*}}",
575 // CHECK-NEXT: "kind": "ObjCAtCatchStmt",
576 // CHECK-NEXT: "range": {
577 // CHECK-NEXT: "begin": {
578 // CHECK-NEXT: "offset": {{[0-9]+}},
579 // CHECK-NEXT: "col": 5,
580 // CHECK-NEXT: "tokLen": 1
582 // CHECK-NEXT: "end": {
583 // CHECK-NEXT: "offset": {{[0-9]+}},
584 // CHECK-NEXT: "line": 17,
585 // CHECK-NEXT: "col": 3,
586 // CHECK-NEXT: "tokLen": 1
589 // CHECK-NEXT: "inner": [
591 // CHECK-NEXT: "id": "0x{{.*}}",
592 // CHECK-NEXT: "kind": "VarDecl",
593 // CHECK-NEXT: "loc": {
594 // CHECK-NEXT: "offset": {{[0-9]+}},
595 // CHECK-NEXT: "line": 16,
596 // CHECK-NEXT: "col": 15,
597 // CHECK-NEXT: "tokLen": 1
599 // CHECK-NEXT: "range": {
600 // CHECK-NEXT: "begin": {
601 // CHECK-NEXT: "offset": {{[0-9]+}},
602 // CHECK-NEXT: "col": 12,
603 // CHECK-NEXT: "tokLen": 1
605 // CHECK-NEXT: "end": {
606 // CHECK-NEXT: "offset": {{[0-9]+}},
607 // CHECK-NEXT: "col": 15,
608 // CHECK-NEXT: "tokLen": 1
611 // CHECK-NEXT: "name": "a",
612 // CHECK-NEXT: "type": {
613 // CHECK-NEXT: "qualType": "A *"
617 // CHECK-NEXT: "id": "0x{{.*}}",
618 // CHECK-NEXT: "kind": "CompoundStmt",
619 // CHECK-NEXT: "range": {
620 // CHECK-NEXT: "begin": {
621 // CHECK-NEXT: "offset": {{[0-9]+}},
622 // CHECK-NEXT: "col": 18,
623 // CHECK-NEXT: "tokLen": 1
625 // CHECK-NEXT: "end": {
626 // CHECK-NEXT: "offset": {{[0-9]+}},
627 // CHECK-NEXT: "line": 17,
628 // CHECK-NEXT: "col": 3,
629 // CHECK-NEXT: "tokLen": 1
636 // CHECK-NEXT: "id": "0x{{.*}}",
637 // CHECK-NEXT: "kind": "ObjCAtCatchStmt",
638 // CHECK-NEXT: "range": {
639 // CHECK-NEXT: "begin": {
640 // CHECK-NEXT: "offset": {{[0-9]+}},
641 // CHECK-NEXT: "col": 5,
642 // CHECK-NEXT: "tokLen": 1
644 // CHECK-NEXT: "end": {
645 // CHECK-NEXT: "offset": {{[0-9]+}},
646 // CHECK-NEXT: "line": 18,
647 // CHECK-NEXT: "col": 3,
648 // CHECK-NEXT: "tokLen": 1
651 // CHECK-NEXT: "isCatchAll": true,
652 // CHECK-NEXT: "inner": [
654 // CHECK-NEXT: "id": "0x{{.*}}",
655 // CHECK-NEXT: "kind": "CompoundStmt",
656 // CHECK-NEXT: "range": {
657 // CHECK-NEXT: "begin": {
658 // CHECK-NEXT: "offset": {{[0-9]+}},
659 // CHECK-NEXT: "line": 17,
660 // CHECK-NEXT: "col": 17,
661 // CHECK-NEXT: "tokLen": 1
663 // CHECK-NEXT: "end": {
664 // CHECK-NEXT: "offset": {{[0-9]+}},
665 // CHECK-NEXT: "line": 18,
666 // CHECK-NEXT: "col": 3,
667 // CHECK-NEXT: "tokLen": 1
674 // CHECK-NEXT: "id": "0x{{.*}}",
675 // CHECK-NEXT: "kind": "ObjCAtFinallyStmt",
676 // CHECK-NEXT: "range": {
677 // CHECK-NEXT: "begin": {
678 // CHECK-NEXT: "offset": {{[0-9]+}},
679 // CHECK-NEXT: "col": 5,
680 // CHECK-NEXT: "tokLen": 1
682 // CHECK-NEXT: "end": {
683 // CHECK-NEXT: "offset": {{[0-9]+}},
684 // CHECK-NEXT: "line": 19,
685 // CHECK-NEXT: "col": 3,
686 // CHECK-NEXT: "tokLen": 1
689 // CHECK-NEXT: "inner": [
691 // CHECK-NEXT: "id": "0x{{.*}}",
692 // CHECK-NEXT: "kind": "CapturedStmt",
693 // CHECK-NEXT: "range": {
694 // CHECK-NEXT: "begin": {
695 // CHECK-NEXT: "offset": {{[0-9]+}},
696 // CHECK-NEXT: "line": 18,
697 // CHECK-NEXT: "col": 14,
698 // CHECK-NEXT: "tokLen": 1
700 // CHECK-NEXT: "end": {
701 // CHECK-NEXT: "offset": {{[0-9]+}},
702 // CHECK-NEXT: "line": 19,
703 // CHECK-NEXT: "col": 3,
704 // CHECK-NEXT: "tokLen": 1
707 // CHECK-NEXT: "inner": [
709 // CHECK-NEXT: "id": "0x{{.*}}",
710 // CHECK-NEXT: "kind": "CapturedDecl",
711 // CHECK-NEXT: "loc": {},
712 // CHECK-NEXT: "range": {
713 // CHECK-NEXT: "begin": {},
714 // CHECK-NEXT: "end": {}
716 // CHECK-NEXT: "inner": [
718 // CHECK-NEXT: "id": "0x{{.*}}",
719 // CHECK-NEXT: "kind": "CompoundStmt",
720 // CHECK-NEXT: "range": {
721 // CHECK-NEXT: "begin": {
722 // CHECK-NEXT: "offset": {{[0-9]+}},
723 // CHECK-NEXT: "line": 18,
724 // CHECK-NEXT: "col": 14,
725 // CHECK-NEXT: "tokLen": 1
727 // CHECK-NEXT: "end": {
728 // CHECK-NEXT: "offset": {{[0-9]+}},
729 // CHECK-NEXT: "line": 19,
730 // CHECK-NEXT: "col": 3,
731 // CHECK-NEXT: "tokLen": 1
736 // CHECK-NEXT: "id": "0x{{.*}}",
737 // CHECK-NEXT: "kind": "ImplicitParamDecl",
738 // CHECK-NEXT: "loc": {
739 // CHECK-NEXT: "offset": {{[0-9]+}},
740 // CHECK-NEXT: "line": 18,
741 // CHECK-NEXT: "col": 14,
742 // CHECK-NEXT: "tokLen": 1
744 // CHECK-NEXT: "range": {
745 // CHECK-NEXT: "begin": {
746 // CHECK-NEXT: "offset": {{[0-9]+}},
747 // CHECK-NEXT: "col": 14,
748 // CHECK-NEXT: "tokLen": 1
750 // CHECK-NEXT: "end": {
751 // CHECK-NEXT: "offset": {{[0-9]+}},
752 // CHECK-NEXT: "col": 14,
753 // CHECK-NEXT: "tokLen": 1
756 // CHECK-NEXT: "isImplicit": true,
757 // CHECK-NEXT: "name": "__context",
758 // CHECK-NEXT: "type": {
759 // CHECK-NEXT: "qualType": "struct (unnamed at {{.*}}:18:14) *"