1// RUN: %clang_cc1 -triple x86_64-pc-win32 -Wno-unused -fblocks -fobjc-exceptions -ast-dump=json -ast-dump-filter Test %s | FileCheck %s 2 3void TestBlockExpr(int x) { 4 ^{ x; }; 5} 6 7void TestExprWithCleanup(int x) { 8 ^{ x; }; 9} 10 11@interface A 12@end 13 14void TestObjCAtCatchStmt() { 15 @try { 16 } @catch(A *a) { 17 } @catch(...) { 18 } @finally { 19 } 20} 21 22// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py 23 24 25// CHECK: "kind": "FunctionDecl", 26// CHECK-NEXT: "loc": { 27// CHECK-NEXT: "offset": 143, 28// CHECK-NEXT: "file": "{{.*}}", 29// CHECK-NEXT: "line": 3, 30// CHECK-NEXT: "col": 6, 31// CHECK-NEXT: "tokLen": 13 32// CHECK-NEXT: }, 33// CHECK-NEXT: "range": { 34// CHECK-NEXT: "begin": { 35// CHECK-NEXT: "offset": 138, 36// CHECK-NEXT: "col": 1, 37// CHECK-NEXT: "tokLen": 4 38// CHECK-NEXT: }, 39// CHECK-NEXT: "end": { 40// CHECK-NEXT: "offset": 177, 41// CHECK-NEXT: "line": 5, 42// CHECK-NEXT: "col": 1, 43// CHECK-NEXT: "tokLen": 1 44// CHECK-NEXT: } 45// CHECK-NEXT: }, 46// CHECK-NEXT: "name": "TestBlockExpr", 47// CHECK-NEXT: "mangledName": "TestBlockExpr", 48// CHECK-NEXT: "type": { 49// CHECK-NEXT: "qualType": "void (int)" 50// CHECK-NEXT: }, 51// CHECK-NEXT: "inner": [ 52// CHECK-NEXT: { 53// CHECK-NEXT: "id": "0x{{.*}}", 54// CHECK-NEXT: "kind": "ParmVarDecl", 55// CHECK-NEXT: "loc": { 56// CHECK-NEXT: "offset": 161, 57// CHECK-NEXT: "line": 3, 58// CHECK-NEXT: "col": 24, 59// CHECK-NEXT: "tokLen": 1 60// CHECK-NEXT: }, 61// CHECK-NEXT: "range": { 62// CHECK-NEXT: "begin": { 63// CHECK-NEXT: "offset": 157, 64// CHECK-NEXT: "col": 20, 65// CHECK-NEXT: "tokLen": 3 66// CHECK-NEXT: }, 67// CHECK-NEXT: "end": { 68// CHECK-NEXT: "offset": 161, 69// CHECK-NEXT: "col": 24, 70// CHECK-NEXT: "tokLen": 1 71// CHECK-NEXT: } 72// CHECK-NEXT: }, 73// CHECK-NEXT: "isUsed": true, 74// CHECK-NEXT: "name": "x", 75// CHECK-NEXT: "mangledName": "x", 76// CHECK-NEXT: "type": { 77// CHECK-NEXT: "qualType": "int" 78// CHECK-NEXT: } 79// CHECK-NEXT: }, 80// CHECK-NEXT: { 81// CHECK-NEXT: "id": "0x{{.*}}", 82// CHECK-NEXT: "kind": "CompoundStmt", 83// CHECK-NEXT: "range": { 84// CHECK-NEXT: "begin": { 85// CHECK-NEXT: "offset": 164, 86// CHECK-NEXT: "col": 27, 87// CHECK-NEXT: "tokLen": 1 88// CHECK-NEXT: }, 89// CHECK-NEXT: "end": { 90// CHECK-NEXT: "offset": 177, 91// CHECK-NEXT: "line": 5, 92// CHECK-NEXT: "col": 1, 93// CHECK-NEXT: "tokLen": 1 94// CHECK-NEXT: } 95// CHECK-NEXT: }, 96// CHECK-NEXT: "inner": [ 97// CHECK-NEXT: { 98// CHECK-NEXT: "id": "0x{{.*}}", 99// CHECK-NEXT: "kind": "ExprWithCleanups", 100// CHECK-NEXT: "range": { 101// CHECK-NEXT: "begin": { 102// CHECK-NEXT: "offset": 168, 103// CHECK-NEXT: "line": 4, 104// CHECK-NEXT: "col": 3, 105// CHECK-NEXT: "tokLen": 1 106// CHECK-NEXT: }, 107// CHECK-NEXT: "end": { 108// CHECK-NEXT: "offset": 174, 109// CHECK-NEXT: "col": 9, 110// CHECK-NEXT: "tokLen": 1 111// CHECK-NEXT: } 112// CHECK-NEXT: }, 113// CHECK-NEXT: "type": { 114// CHECK-NEXT: "qualType": "void (^)(void)" 115// CHECK-NEXT: }, 116// CHECK-NEXT: "valueCategory": "rvalue", 117// CHECK-NEXT: "cleanupsHaveSideEffects": true, 118// CHECK-NEXT: "cleanups": [ 119// CHECK-NEXT: { 120// CHECK-NEXT: "id": "0x{{.*}}", 121// CHECK-NEXT: "kind": "BlockDecl" 122// CHECK-NEXT: } 123// CHECK-NEXT: ], 124// CHECK-NEXT: "inner": [ 125// CHECK-NEXT: { 126// CHECK-NEXT: "id": "0x{{.*}}", 127// CHECK-NEXT: "kind": "BlockExpr", 128// CHECK-NEXT: "range": { 129// CHECK-NEXT: "begin": { 130// CHECK-NEXT: "offset": 168, 131// CHECK-NEXT: "col": 3, 132// CHECK-NEXT: "tokLen": 1 133// CHECK-NEXT: }, 134// CHECK-NEXT: "end": { 135// CHECK-NEXT: "offset": 174, 136// CHECK-NEXT: "col": 9, 137// CHECK-NEXT: "tokLen": 1 138// CHECK-NEXT: } 139// CHECK-NEXT: }, 140// CHECK-NEXT: "type": { 141// CHECK-NEXT: "qualType": "void (^)(void)" 142// CHECK-NEXT: }, 143// CHECK-NEXT: "valueCategory": "rvalue", 144// CHECK-NEXT: "inner": [ 145// CHECK-NEXT: { 146// CHECK-NEXT: "id": "0x{{.*}}", 147// CHECK-NEXT: "kind": "BlockDecl", 148// CHECK-NEXT: "loc": { 149// CHECK-NEXT: "offset": 168, 150// CHECK-NEXT: "col": 3, 151// CHECK-NEXT: "tokLen": 1 152// CHECK-NEXT: }, 153// CHECK-NEXT: "range": { 154// CHECK-NEXT: "begin": { 155// CHECK-NEXT: "offset": 168, 156// CHECK-NEXT: "col": 3, 157// CHECK-NEXT: "tokLen": 1 158// CHECK-NEXT: }, 159// CHECK-NEXT: "end": { 160// CHECK-NEXT: "offset": 174, 161// CHECK-NEXT: "col": 9, 162// CHECK-NEXT: "tokLen": 1 163// CHECK-NEXT: } 164// CHECK-NEXT: }, 165// CHECK-NEXT: "inner": [ 166// CHECK-NEXT: { 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" 174// CHECK-NEXT: } 175// CHECK-NEXT: } 176// CHECK-NEXT: }, 177// CHECK-NEXT: { 178// CHECK-NEXT: "id": "0x{{.*}}", 179// CHECK-NEXT: "kind": "CompoundStmt", 180// CHECK-NEXT: "range": { 181// CHECK-NEXT: "begin": { 182// CHECK-NEXT: "offset": 169, 183// CHECK-NEXT: "col": 4, 184// CHECK-NEXT: "tokLen": 1 185// CHECK-NEXT: }, 186// CHECK-NEXT: "end": { 187// CHECK-NEXT: "offset": 174, 188// CHECK-NEXT: "col": 9, 189// CHECK-NEXT: "tokLen": 1 190// CHECK-NEXT: } 191// CHECK-NEXT: }, 192// CHECK-NEXT: "inner": [ 193// CHECK-NEXT: { 194// CHECK-NEXT: "id": "0x{{.*}}", 195// CHECK-NEXT: "kind": "ImplicitCastExpr", 196// CHECK-NEXT: "range": { 197// CHECK-NEXT: "begin": { 198// CHECK-NEXT: "offset": 171, 199// CHECK-NEXT: "col": 6, 200// CHECK-NEXT: "tokLen": 1 201// CHECK-NEXT: }, 202// CHECK-NEXT: "end": { 203// CHECK-NEXT: "offset": 171, 204// CHECK-NEXT: "col": 6, 205// CHECK-NEXT: "tokLen": 1 206// CHECK-NEXT: } 207// CHECK-NEXT: }, 208// CHECK-NEXT: "type": { 209// CHECK-NEXT: "qualType": "int" 210// CHECK-NEXT: }, 211// CHECK-NEXT: "valueCategory": "rvalue", 212// CHECK-NEXT: "castKind": "LValueToRValue", 213// CHECK-NEXT: "inner": [ 214// CHECK-NEXT: { 215// CHECK-NEXT: "id": "0x{{.*}}", 216// CHECK-NEXT: "kind": "DeclRefExpr", 217// CHECK-NEXT: "range": { 218// CHECK-NEXT: "begin": { 219// CHECK-NEXT: "offset": 171, 220// CHECK-NEXT: "col": 6, 221// CHECK-NEXT: "tokLen": 1 222// CHECK-NEXT: }, 223// CHECK-NEXT: "end": { 224// CHECK-NEXT: "offset": 171, 225// CHECK-NEXT: "col": 6, 226// CHECK-NEXT: "tokLen": 1 227// CHECK-NEXT: } 228// CHECK-NEXT: }, 229// CHECK-NEXT: "type": { 230// CHECK-NEXT: "qualType": "const int" 231// CHECK-NEXT: }, 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" 239// CHECK-NEXT: } 240// CHECK-NEXT: } 241// CHECK-NEXT: } 242// CHECK-NEXT: ] 243// CHECK-NEXT: } 244// CHECK-NEXT: ] 245// CHECK-NEXT: } 246// CHECK-NEXT: ] 247// CHECK-NEXT: } 248// CHECK-NEXT: ] 249// CHECK-NEXT: } 250// CHECK-NEXT: ] 251// CHECK-NEXT: } 252// CHECK-NEXT: ] 253// CHECK-NEXT: } 254// CHECK-NEXT: ] 255// CHECK-NEXT: } 256 257 258// CHECK: "kind": "FunctionDecl", 259// CHECK-NEXT: "loc": { 260// CHECK-NEXT: "offset": 185, 261// CHECK-NEXT: "file": "{{.*}}", 262// CHECK-NEXT: "line": 7, 263// CHECK-NEXT: "col": 6, 264// CHECK-NEXT: "tokLen": 19 265// CHECK-NEXT: }, 266// CHECK-NEXT: "range": { 267// CHECK-NEXT: "begin": { 268// CHECK-NEXT: "offset": 180, 269// CHECK-NEXT: "col": 1, 270// CHECK-NEXT: "tokLen": 4 271// CHECK-NEXT: }, 272// CHECK-NEXT: "end": { 273// CHECK-NEXT: "offset": 225, 274// CHECK-NEXT: "line": 9, 275// CHECK-NEXT: "col": 1, 276// CHECK-NEXT: "tokLen": 1 277// CHECK-NEXT: } 278// CHECK-NEXT: }, 279// CHECK-NEXT: "name": "TestExprWithCleanup", 280// CHECK-NEXT: "mangledName": "TestExprWithCleanup", 281// CHECK-NEXT: "type": { 282// CHECK-NEXT: "qualType": "void (int)" 283// CHECK-NEXT: }, 284// CHECK-NEXT: "inner": [ 285// CHECK-NEXT: { 286// CHECK-NEXT: "id": "0x{{.*}}", 287// CHECK-NEXT: "kind": "ParmVarDecl", 288// CHECK-NEXT: "loc": { 289// CHECK-NEXT: "offset": 209, 290// CHECK-NEXT: "line": 7, 291// CHECK-NEXT: "col": 30, 292// CHECK-NEXT: "tokLen": 1 293// CHECK-NEXT: }, 294// CHECK-NEXT: "range": { 295// CHECK-NEXT: "begin": { 296// CHECK-NEXT: "offset": 205, 297// CHECK-NEXT: "col": 26, 298// CHECK-NEXT: "tokLen": 3 299// CHECK-NEXT: }, 300// CHECK-NEXT: "end": { 301// CHECK-NEXT: "offset": 209, 302// CHECK-NEXT: "col": 30, 303// CHECK-NEXT: "tokLen": 1 304// CHECK-NEXT: } 305// CHECK-NEXT: }, 306// CHECK-NEXT: "isUsed": true, 307// CHECK-NEXT: "name": "x", 308// CHECK-NEXT: "mangledName": "x", 309// CHECK-NEXT: "type": { 310// CHECK-NEXT: "qualType": "int" 311// CHECK-NEXT: } 312// CHECK-NEXT: }, 313// CHECK-NEXT: { 314// CHECK-NEXT: "id": "0x{{.*}}", 315// CHECK-NEXT: "kind": "CompoundStmt", 316// CHECK-NEXT: "range": { 317// CHECK-NEXT: "begin": { 318// CHECK-NEXT: "offset": 212, 319// CHECK-NEXT: "col": 33, 320// CHECK-NEXT: "tokLen": 1 321// CHECK-NEXT: }, 322// CHECK-NEXT: "end": { 323// CHECK-NEXT: "offset": 225, 324// CHECK-NEXT: "line": 9, 325// CHECK-NEXT: "col": 1, 326// CHECK-NEXT: "tokLen": 1 327// CHECK-NEXT: } 328// CHECK-NEXT: }, 329// CHECK-NEXT: "inner": [ 330// CHECK-NEXT: { 331// CHECK-NEXT: "id": "0x{{.*}}", 332// CHECK-NEXT: "kind": "ExprWithCleanups", 333// CHECK-NEXT: "range": { 334// CHECK-NEXT: "begin": { 335// CHECK-NEXT: "offset": 216, 336// CHECK-NEXT: "line": 8, 337// CHECK-NEXT: "col": 3, 338// CHECK-NEXT: "tokLen": 1 339// CHECK-NEXT: }, 340// CHECK-NEXT: "end": { 341// CHECK-NEXT: "offset": 222, 342// CHECK-NEXT: "col": 9, 343// CHECK-NEXT: "tokLen": 1 344// CHECK-NEXT: } 345// CHECK-NEXT: }, 346// CHECK-NEXT: "type": { 347// CHECK-NEXT: "qualType": "void (^)(void)" 348// CHECK-NEXT: }, 349// CHECK-NEXT: "valueCategory": "rvalue", 350// CHECK-NEXT: "cleanupsHaveSideEffects": true, 351// CHECK-NEXT: "cleanups": [ 352// CHECK-NEXT: { 353// CHECK-NEXT: "id": "0x{{.*}}", 354// CHECK-NEXT: "kind": "BlockDecl" 355// CHECK-NEXT: } 356// CHECK-NEXT: ], 357// CHECK-NEXT: "inner": [ 358// CHECK-NEXT: { 359// CHECK-NEXT: "id": "0x{{.*}}", 360// CHECK-NEXT: "kind": "BlockExpr", 361// CHECK-NEXT: "range": { 362// CHECK-NEXT: "begin": { 363// CHECK-NEXT: "offset": 216, 364// CHECK-NEXT: "col": 3, 365// CHECK-NEXT: "tokLen": 1 366// CHECK-NEXT: }, 367// CHECK-NEXT: "end": { 368// CHECK-NEXT: "offset": 222, 369// CHECK-NEXT: "col": 9, 370// CHECK-NEXT: "tokLen": 1 371// CHECK-NEXT: } 372// CHECK-NEXT: }, 373// CHECK-NEXT: "type": { 374// CHECK-NEXT: "qualType": "void (^)(void)" 375// CHECK-NEXT: }, 376// CHECK-NEXT: "valueCategory": "rvalue", 377// CHECK-NEXT: "inner": [ 378// CHECK-NEXT: { 379// CHECK-NEXT: "id": "0x{{.*}}", 380// CHECK-NEXT: "kind": "BlockDecl", 381// CHECK-NEXT: "loc": { 382// CHECK-NEXT: "offset": 216, 383// CHECK-NEXT: "col": 3, 384// CHECK-NEXT: "tokLen": 1 385// CHECK-NEXT: }, 386// CHECK-NEXT: "range": { 387// CHECK-NEXT: "begin": { 388// CHECK-NEXT: "offset": 216, 389// CHECK-NEXT: "col": 3, 390// CHECK-NEXT: "tokLen": 1 391// CHECK-NEXT: }, 392// CHECK-NEXT: "end": { 393// CHECK-NEXT: "offset": 222, 394// CHECK-NEXT: "col": 9, 395// CHECK-NEXT: "tokLen": 1 396// CHECK-NEXT: } 397// CHECK-NEXT: }, 398// CHECK-NEXT: "inner": [ 399// CHECK-NEXT: { 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" 407// CHECK-NEXT: } 408// CHECK-NEXT: } 409// CHECK-NEXT: }, 410// CHECK-NEXT: { 411// CHECK-NEXT: "id": "0x{{.*}}", 412// CHECK-NEXT: "kind": "CompoundStmt", 413// CHECK-NEXT: "range": { 414// CHECK-NEXT: "begin": { 415// CHECK-NEXT: "offset": 217, 416// CHECK-NEXT: "col": 4, 417// CHECK-NEXT: "tokLen": 1 418// CHECK-NEXT: }, 419// CHECK-NEXT: "end": { 420// CHECK-NEXT: "offset": 222, 421// CHECK-NEXT: "col": 9, 422// CHECK-NEXT: "tokLen": 1 423// CHECK-NEXT: } 424// CHECK-NEXT: }, 425// CHECK-NEXT: "inner": [ 426// CHECK-NEXT: { 427// CHECK-NEXT: "id": "0x{{.*}}", 428// CHECK-NEXT: "kind": "ImplicitCastExpr", 429// CHECK-NEXT: "range": { 430// CHECK-NEXT: "begin": { 431// CHECK-NEXT: "offset": 219, 432// CHECK-NEXT: "col": 6, 433// CHECK-NEXT: "tokLen": 1 434// CHECK-NEXT: }, 435// CHECK-NEXT: "end": { 436// CHECK-NEXT: "offset": 219, 437// CHECK-NEXT: "col": 6, 438// CHECK-NEXT: "tokLen": 1 439// CHECK-NEXT: } 440// CHECK-NEXT: }, 441// CHECK-NEXT: "type": { 442// CHECK-NEXT: "qualType": "int" 443// CHECK-NEXT: }, 444// CHECK-NEXT: "valueCategory": "rvalue", 445// CHECK-NEXT: "castKind": "LValueToRValue", 446// CHECK-NEXT: "inner": [ 447// CHECK-NEXT: { 448// CHECK-NEXT: "id": "0x{{.*}}", 449// CHECK-NEXT: "kind": "DeclRefExpr", 450// CHECK-NEXT: "range": { 451// CHECK-NEXT: "begin": { 452// CHECK-NEXT: "offset": 219, 453// CHECK-NEXT: "col": 6, 454// CHECK-NEXT: "tokLen": 1 455// CHECK-NEXT: }, 456// CHECK-NEXT: "end": { 457// CHECK-NEXT: "offset": 219, 458// CHECK-NEXT: "col": 6, 459// CHECK-NEXT: "tokLen": 1 460// CHECK-NEXT: } 461// CHECK-NEXT: }, 462// CHECK-NEXT: "type": { 463// CHECK-NEXT: "qualType": "const int" 464// CHECK-NEXT: }, 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" 472// CHECK-NEXT: } 473// CHECK-NEXT: } 474// CHECK-NEXT: } 475// CHECK-NEXT: ] 476// CHECK-NEXT: } 477// CHECK-NEXT: ] 478// CHECK-NEXT: } 479// CHECK-NEXT: ] 480// CHECK-NEXT: } 481// CHECK-NEXT: ] 482// CHECK-NEXT: } 483// CHECK-NEXT: ] 484// CHECK-NEXT: } 485// CHECK-NEXT: ] 486// CHECK-NEXT: } 487// CHECK-NEXT: ] 488// CHECK-NEXT: } 489 490 491// CHECK: "kind": "FunctionDecl", 492// CHECK-NEXT: "loc": { 493// CHECK-NEXT: "offset": 252, 494// CHECK-NEXT: "file": "{{.*}}", 495// CHECK-NEXT: "line": 14, 496// CHECK-NEXT: "col": 6, 497// CHECK-NEXT: "tokLen": 19 498// CHECK-NEXT: }, 499// CHECK-NEXT: "range": { 500// CHECK-NEXT: "begin": { 501// CHECK-NEXT: "offset": 247, 502// CHECK-NEXT: "col": 1, 503// CHECK-NEXT: "tokLen": 4 504// CHECK-NEXT: }, 505// CHECK-NEXT: "end": { 506// CHECK-NEXT: "offset": 341, 507// CHECK-NEXT: "line": 20, 508// CHECK-NEXT: "col": 1, 509// CHECK-NEXT: "tokLen": 1 510// CHECK-NEXT: } 511// CHECK-NEXT: }, 512// CHECK-NEXT: "name": "TestObjCAtCatchStmt", 513// CHECK-NEXT: "mangledName": "TestObjCAtCatchStmt", 514// CHECK-NEXT: "type": { 515// CHECK-NEXT: "qualType": "void ()" 516// CHECK-NEXT: }, 517// CHECK-NEXT: "inner": [ 518// CHECK-NEXT: { 519// CHECK-NEXT: "id": "0x{{.*}}", 520// CHECK-NEXT: "kind": "CompoundStmt", 521// CHECK-NEXT: "range": { 522// CHECK-NEXT: "begin": { 523// CHECK-NEXT: "offset": 274, 524// CHECK-NEXT: "line": 14, 525// CHECK-NEXT: "col": 28, 526// CHECK-NEXT: "tokLen": 1 527// CHECK-NEXT: }, 528// CHECK-NEXT: "end": { 529// CHECK-NEXT: "offset": 341, 530// CHECK-NEXT: "line": 20, 531// CHECK-NEXT: "col": 1, 532// CHECK-NEXT: "tokLen": 1 533// CHECK-NEXT: } 534// CHECK-NEXT: }, 535// CHECK-NEXT: "inner": [ 536// CHECK-NEXT: { 537// CHECK-NEXT: "id": "0x{{.*}}", 538// CHECK-NEXT: "kind": "ObjCAtTryStmt", 539// CHECK-NEXT: "range": { 540// CHECK-NEXT: "begin": { 541// CHECK-NEXT: "offset": 278, 542// CHECK-NEXT: "line": 15, 543// CHECK-NEXT: "col": 3, 544// CHECK-NEXT: "tokLen": 1 545// CHECK-NEXT: }, 546// CHECK-NEXT: "end": { 547// CHECK-NEXT: "offset": 339, 548// CHECK-NEXT: "line": 19, 549// CHECK-NEXT: "col": 3, 550// CHECK-NEXT: "tokLen": 1 551// CHECK-NEXT: } 552// CHECK-NEXT: }, 553// CHECK-NEXT: "inner": [ 554// CHECK-NEXT: { 555// CHECK-NEXT: "id": "0x{{.*}}", 556// CHECK-NEXT: "kind": "CompoundStmt", 557// CHECK-NEXT: "range": { 558// CHECK-NEXT: "begin": { 559// CHECK-NEXT: "offset": 283, 560// CHECK-NEXT: "line": 15, 561// CHECK-NEXT: "col": 8, 562// CHECK-NEXT: "tokLen": 1 563// CHECK-NEXT: }, 564// CHECK-NEXT: "end": { 565// CHECK-NEXT: "offset": 287, 566// CHECK-NEXT: "line": 16, 567// CHECK-NEXT: "col": 3, 568// CHECK-NEXT: "tokLen": 1 569// CHECK-NEXT: } 570// CHECK-NEXT: } 571// CHECK-NEXT: }, 572// CHECK-NEXT: { 573// CHECK-NEXT: "id": "0x{{.*}}", 574// CHECK-NEXT: "kind": "ObjCAtCatchStmt", 575// CHECK-NEXT: "range": { 576// CHECK-NEXT: "begin": { 577// CHECK-NEXT: "offset": 289, 578// CHECK-NEXT: "col": 5, 579// CHECK-NEXT: "tokLen": 1 580// CHECK-NEXT: }, 581// CHECK-NEXT: "end": { 582// CHECK-NEXT: "offset": 306, 583// CHECK-NEXT: "line": 17, 584// CHECK-NEXT: "col": 3, 585// CHECK-NEXT: "tokLen": 1 586// CHECK-NEXT: } 587// CHECK-NEXT: }, 588// CHECK-NEXT: "inner": [ 589// CHECK-NEXT: { 590// CHECK-NEXT: "id": "0x{{.*}}", 591// CHECK-NEXT: "kind": "VarDecl", 592// CHECK-NEXT: "loc": { 593// CHECK-NEXT: "offset": 299, 594// CHECK-NEXT: "line": 16, 595// CHECK-NEXT: "col": 15, 596// CHECK-NEXT: "tokLen": 1 597// CHECK-NEXT: }, 598// CHECK-NEXT: "range": { 599// CHECK-NEXT: "begin": { 600// CHECK-NEXT: "offset": 296, 601// CHECK-NEXT: "col": 12, 602// CHECK-NEXT: "tokLen": 1 603// CHECK-NEXT: }, 604// CHECK-NEXT: "end": { 605// CHECK-NEXT: "offset": 299, 606// CHECK-NEXT: "col": 15, 607// CHECK-NEXT: "tokLen": 1 608// CHECK-NEXT: } 609// CHECK-NEXT: }, 610// CHECK-NEXT: "name": "a", 611// CHECK-NEXT: "mangledName": "a", 612// CHECK-NEXT: "type": { 613// CHECK-NEXT: "qualType": "A *" 614// CHECK-NEXT: } 615// CHECK-NEXT: }, 616// CHECK-NEXT: { 617// CHECK-NEXT: "id": "0x{{.*}}", 618// CHECK-NEXT: "kind": "CompoundStmt", 619// CHECK-NEXT: "range": { 620// CHECK-NEXT: "begin": { 621// CHECK-NEXT: "offset": 302, 622// CHECK-NEXT: "col": 18, 623// CHECK-NEXT: "tokLen": 1 624// CHECK-NEXT: }, 625// CHECK-NEXT: "end": { 626// CHECK-NEXT: "offset": 306, 627// CHECK-NEXT: "line": 17, 628// CHECK-NEXT: "col": 3, 629// CHECK-NEXT: "tokLen": 1 630// CHECK-NEXT: } 631// CHECK-NEXT: } 632// CHECK-NEXT: } 633// CHECK-NEXT: ] 634// CHECK-NEXT: }, 635// CHECK-NEXT: { 636// CHECK-NEXT: "id": "0x{{.*}}", 637// CHECK-NEXT: "kind": "ObjCAtCatchStmt", 638// CHECK-NEXT: "range": { 639// CHECK-NEXT: "begin": { 640// CHECK-NEXT: "offset": 308, 641// CHECK-NEXT: "col": 5, 642// CHECK-NEXT: "tokLen": 1 643// CHECK-NEXT: }, 644// CHECK-NEXT: "end": { 645// CHECK-NEXT: "offset": 324, 646// CHECK-NEXT: "line": 18, 647// CHECK-NEXT: "col": 3, 648// CHECK-NEXT: "tokLen": 1 649// CHECK-NEXT: } 650// CHECK-NEXT: }, 651// CHECK-NEXT: "isCatchAll": true, 652// CHECK-NEXT: "inner": [ 653// CHECK-NEXT: { 654// CHECK-NEXT: "id": "0x{{.*}}", 655// CHECK-NEXT: "kind": "CompoundStmt", 656// CHECK-NEXT: "range": { 657// CHECK-NEXT: "begin": { 658// CHECK-NEXT: "offset": 320, 659// CHECK-NEXT: "line": 17, 660// CHECK-NEXT: "col": 17, 661// CHECK-NEXT: "tokLen": 1 662// CHECK-NEXT: }, 663// CHECK-NEXT: "end": { 664// CHECK-NEXT: "offset": 324, 665// CHECK-NEXT: "line": 18, 666// CHECK-NEXT: "col": 3, 667// CHECK-NEXT: "tokLen": 1 668// CHECK-NEXT: } 669// CHECK-NEXT: } 670// CHECK-NEXT: } 671// CHECK-NEXT: ] 672// CHECK-NEXT: }, 673// CHECK-NEXT: { 674// CHECK-NEXT: "id": "0x{{.*}}", 675// CHECK-NEXT: "kind": "ObjCAtFinallyStmt", 676// CHECK-NEXT: "range": { 677// CHECK-NEXT: "begin": { 678// CHECK-NEXT: "offset": 326, 679// CHECK-NEXT: "col": 5, 680// CHECK-NEXT: "tokLen": 1 681// CHECK-NEXT: }, 682// CHECK-NEXT: "end": { 683// CHECK-NEXT: "offset": 339, 684// CHECK-NEXT: "line": 19, 685// CHECK-NEXT: "col": 3, 686// CHECK-NEXT: "tokLen": 1 687// CHECK-NEXT: } 688// CHECK-NEXT: }, 689// CHECK-NEXT: "inner": [ 690// CHECK-NEXT: { 691// CHECK-NEXT: "id": "0x{{.*}}", 692// CHECK-NEXT: "kind": "CapturedStmt", 693// CHECK-NEXT: "range": { 694// CHECK-NEXT: "begin": { 695// CHECK-NEXT: "offset": 335, 696// CHECK-NEXT: "line": 18, 697// CHECK-NEXT: "col": 14, 698// CHECK-NEXT: "tokLen": 1 699// CHECK-NEXT: }, 700// CHECK-NEXT: "end": { 701// CHECK-NEXT: "offset": 339, 702// CHECK-NEXT: "line": 19, 703// CHECK-NEXT: "col": 3, 704// CHECK-NEXT: "tokLen": 1 705// CHECK-NEXT: } 706// CHECK-NEXT: }, 707// CHECK-NEXT: "inner": [ 708// CHECK-NEXT: { 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": {} 715// CHECK-NEXT: }, 716// CHECK-NEXT: "inner": [ 717// CHECK-NEXT: { 718// CHECK-NEXT: "id": "0x{{.*}}", 719// CHECK-NEXT: "kind": "CompoundStmt", 720// CHECK-NEXT: "range": { 721// CHECK-NEXT: "begin": { 722// CHECK-NEXT: "offset": 335, 723// CHECK-NEXT: "line": 18, 724// CHECK-NEXT: "col": 14, 725// CHECK-NEXT: "tokLen": 1 726// CHECK-NEXT: }, 727// CHECK-NEXT: "end": { 728// CHECK-NEXT: "offset": 339, 729// CHECK-NEXT: "line": 19, 730// CHECK-NEXT: "col": 3, 731// CHECK-NEXT: "tokLen": 1 732// CHECK-NEXT: } 733// CHECK-NEXT: } 734// CHECK-NEXT: }, 735// CHECK-NEXT: { 736// CHECK-NEXT: "id": "0x{{.*}}", 737// CHECK-NEXT: "kind": "ImplicitParamDecl", 738// CHECK-NEXT: "loc": { 739// CHECK-NEXT: "offset": 335, 740// CHECK-NEXT: "line": 18, 741// CHECK-NEXT: "col": 14, 742// CHECK-NEXT: "tokLen": 1 743// CHECK-NEXT: }, 744// CHECK-NEXT: "range": { 745// CHECK-NEXT: "begin": { 746// CHECK-NEXT: "offset": 335, 747// CHECK-NEXT: "col": 14, 748// CHECK-NEXT: "tokLen": 1 749// CHECK-NEXT: }, 750// CHECK-NEXT: "end": { 751// CHECK-NEXT: "offset": 335, 752// CHECK-NEXT: "col": 14, 753// CHECK-NEXT: "tokLen": 1 754// CHECK-NEXT: } 755// CHECK-NEXT: }, 756// CHECK-NEXT: "isImplicit": true, 757// CHECK-NEXT: "name": "__context", 758// CHECK-NEXT: "mangledName": "__context", 759// CHECK-NEXT: "type": { 760// CHECK-NEXT: "qualType": "struct (anonymous at {{.*}}:18:14) *" 761// CHECK-NEXT: } 762// CHECK-NEXT: } 763// CHECK-NEXT: ] 764// CHECK-NEXT: } 765// CHECK-NEXT: ] 766// CHECK-NEXT: } 767// CHECK-NEXT: ] 768// CHECK-NEXT: } 769// CHECK-NEXT: ] 770// CHECK-NEXT: } 771// CHECK-NEXT: ] 772// CHECK-NEXT: } 773// CHECK-NEXT: ] 774// CHECK-NEXT: } 775