774 lines · plain
1// RUN: %clang_cc1 -triple x86_64-pc-win32 -Wno-unused -fblocks -fobjc-exceptions -ast-dump=json -ast-dump-filter Test %s | FileCheck %s2 3void TestBlockExpr(int x) {4 ^{ x; };5}6 7void TestExprWithCleanup(int x) {8 ^{ x; };9}10 11@interface A12@end13 14void TestObjCAtCatchStmt(void) {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.py23 24 25// CHECK-NOT: {{^}}Dumping26// 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": 1333// CHECK-NEXT: },34// CHECK-NEXT: "range": {35// CHECK-NEXT: "begin": {36// CHECK-NEXT: "offset": {{[0-9]+}},37// CHECK-NEXT: "col": 1,38// CHECK-NEXT: "tokLen": 439// CHECK-NEXT: },40// CHECK-NEXT: "end": {41// CHECK-NEXT: "offset": {{[0-9]+}},42// CHECK-NEXT: "line": 5,43// CHECK-NEXT: "col": 1,44// CHECK-NEXT: "tokLen": 145// CHECK-NEXT: }46// CHECK-NEXT: },47// CHECK-NEXT: "name": "TestBlockExpr",48// CHECK-NEXT: "mangledName": "TestBlockExpr",49// CHECK-NEXT: "type": {50// CHECK-NEXT: "qualType": "void (int)"51// CHECK-NEXT: },52// CHECK-NEXT: "inner": [53// CHECK-NEXT: {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": 161// CHECK-NEXT: },62// CHECK-NEXT: "range": {63// CHECK-NEXT: "begin": {64// CHECK-NEXT: "offset": {{[0-9]+}},65// CHECK-NEXT: "col": 20,66// CHECK-NEXT: "tokLen": 367// CHECK-NEXT: },68// CHECK-NEXT: "end": {69// CHECK-NEXT: "offset": {{[0-9]+}},70// CHECK-NEXT: "col": 24,71// CHECK-NEXT: "tokLen": 172// CHECK-NEXT: }73// CHECK-NEXT: },74// CHECK-NEXT: "isUsed": true,75// CHECK-NEXT: "name": "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": {{[0-9]+}},86// CHECK-NEXT: "col": 27,87// CHECK-NEXT: "tokLen": 188// CHECK-NEXT: },89// CHECK-NEXT: "end": {90// CHECK-NEXT: "offset": {{[0-9]+}},91// CHECK-NEXT: "line": 5,92// CHECK-NEXT: "col": 1,93// CHECK-NEXT: "tokLen": 194// 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": {{[0-9]+}},103// CHECK-NEXT: "line": 4,104// CHECK-NEXT: "col": 3,105// CHECK-NEXT: "tokLen": 1106// CHECK-NEXT: },107// CHECK-NEXT: "end": {108// CHECK-NEXT: "offset": {{[0-9]+}},109// CHECK-NEXT: "col": 9,110// CHECK-NEXT: "tokLen": 1111// CHECK-NEXT: }112// CHECK-NEXT: },113// CHECK-NEXT: "type": {114// CHECK-NEXT: "qualType": "void (^)(void)"115// CHECK-NEXT: },116// CHECK-NEXT: "valueCategory": "prvalue",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": {{[0-9]+}},131// CHECK-NEXT: "col": 3,132// CHECK-NEXT: "tokLen": 1133// CHECK-NEXT: },134// CHECK-NEXT: "end": {135// CHECK-NEXT: "offset": {{[0-9]+}},136// CHECK-NEXT: "col": 9,137// CHECK-NEXT: "tokLen": 1138// CHECK-NEXT: }139// CHECK-NEXT: },140// CHECK-NEXT: "type": {141// CHECK-NEXT: "qualType": "void (^)(void)"142// CHECK-NEXT: },143// CHECK-NEXT: "valueCategory": "prvalue",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": {{[0-9]+}},150// CHECK-NEXT: "col": 3,151// CHECK-NEXT: "tokLen": 1152// CHECK-NEXT: },153// CHECK-NEXT: "range": {154// CHECK-NEXT: "begin": {155// CHECK-NEXT: "offset": {{[0-9]+}},156// CHECK-NEXT: "col": 3,157// CHECK-NEXT: "tokLen": 1158// CHECK-NEXT: },159// CHECK-NEXT: "end": {160// CHECK-NEXT: "offset": {{[0-9]+}},161// CHECK-NEXT: "col": 9,162// CHECK-NEXT: "tokLen": 1163// 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": {{[0-9]+}},183// CHECK-NEXT: "col": 4,184// CHECK-NEXT: "tokLen": 1185// CHECK-NEXT: },186// CHECK-NEXT: "end": {187// CHECK-NEXT: "offset": {{[0-9]+}},188// CHECK-NEXT: "col": 9,189// CHECK-NEXT: "tokLen": 1190// 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": {{[0-9]+}},199// CHECK-NEXT: "col": 6,200// CHECK-NEXT: "tokLen": 1201// CHECK-NEXT: },202// CHECK-NEXT: "end": {203// CHECK-NEXT: "offset": {{[0-9]+}},204// CHECK-NEXT: "col": 6,205// CHECK-NEXT: "tokLen": 1206// CHECK-NEXT: }207// CHECK-NEXT: },208// CHECK-NEXT: "type": {209// CHECK-NEXT: "qualType": "int"210// CHECK-NEXT: },211// CHECK-NEXT: "valueCategory": "prvalue",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": {{[0-9]+}},220// CHECK-NEXT: "col": 6,221// CHECK-NEXT: "tokLen": 1222// CHECK-NEXT: },223// CHECK-NEXT: "end": {224// CHECK-NEXT: "offset": {{[0-9]+}},225// CHECK-NEXT: "col": 6,226// CHECK-NEXT: "tokLen": 1227// 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-NOT: {{^}}Dumping259// 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": 19266// CHECK-NEXT: },267// CHECK-NEXT: "range": {268// CHECK-NEXT: "begin": {269// CHECK-NEXT: "offset": {{[0-9]+}},270// CHECK-NEXT: "col": 1,271// CHECK-NEXT: "tokLen": 4272// CHECK-NEXT: },273// CHECK-NEXT: "end": {274// CHECK-NEXT: "offset": {{[0-9]+}},275// CHECK-NEXT: "line": 9,276// CHECK-NEXT: "col": 1,277// CHECK-NEXT: "tokLen": 1278// CHECK-NEXT: }279// CHECK-NEXT: },280// CHECK-NEXT: "name": "TestExprWithCleanup",281// CHECK-NEXT: "mangledName": "TestExprWithCleanup",282// CHECK-NEXT: "type": {283// CHECK-NEXT: "qualType": "void (int)"284// CHECK-NEXT: },285// CHECK-NEXT: "inner": [286// CHECK-NEXT: {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": 1294// CHECK-NEXT: },295// CHECK-NEXT: "range": {296// CHECK-NEXT: "begin": {297// CHECK-NEXT: "offset": {{[0-9]+}},298// CHECK-NEXT: "col": 26,299// CHECK-NEXT: "tokLen": 3300// CHECK-NEXT: },301// CHECK-NEXT: "end": {302// CHECK-NEXT: "offset": {{[0-9]+}},303// CHECK-NEXT: "col": 30,304// CHECK-NEXT: "tokLen": 1305// CHECK-NEXT: }306// CHECK-NEXT: },307// CHECK-NEXT: "isUsed": true,308// CHECK-NEXT: "name": "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": {{[0-9]+}},319// CHECK-NEXT: "col": 33,320// CHECK-NEXT: "tokLen": 1321// CHECK-NEXT: },322// CHECK-NEXT: "end": {323// CHECK-NEXT: "offset": {{[0-9]+}},324// CHECK-NEXT: "line": 9,325// CHECK-NEXT: "col": 1,326// CHECK-NEXT: "tokLen": 1327// 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": {{[0-9]+}},336// CHECK-NEXT: "line": 8,337// CHECK-NEXT: "col": 3,338// CHECK-NEXT: "tokLen": 1339// CHECK-NEXT: },340// CHECK-NEXT: "end": {341// CHECK-NEXT: "offset": {{[0-9]+}},342// CHECK-NEXT: "col": 9,343// CHECK-NEXT: "tokLen": 1344// CHECK-NEXT: }345// CHECK-NEXT: },346// CHECK-NEXT: "type": {347// CHECK-NEXT: "qualType": "void (^)(void)"348// CHECK-NEXT: },349// CHECK-NEXT: "valueCategory": "prvalue",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": {{[0-9]+}},364// CHECK-NEXT: "col": 3,365// CHECK-NEXT: "tokLen": 1366// CHECK-NEXT: },367// CHECK-NEXT: "end": {368// CHECK-NEXT: "offset": {{[0-9]+}},369// CHECK-NEXT: "col": 9,370// CHECK-NEXT: "tokLen": 1371// CHECK-NEXT: }372// CHECK-NEXT: },373// CHECK-NEXT: "type": {374// CHECK-NEXT: "qualType": "void (^)(void)"375// CHECK-NEXT: },376// CHECK-NEXT: "valueCategory": "prvalue",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": {{[0-9]+}},383// CHECK-NEXT: "col": 3,384// CHECK-NEXT: "tokLen": 1385// CHECK-NEXT: },386// CHECK-NEXT: "range": {387// CHECK-NEXT: "begin": {388// CHECK-NEXT: "offset": {{[0-9]+}},389// CHECK-NEXT: "col": 3,390// CHECK-NEXT: "tokLen": 1391// CHECK-NEXT: },392// CHECK-NEXT: "end": {393// CHECK-NEXT: "offset": {{[0-9]+}},394// CHECK-NEXT: "col": 9,395// CHECK-NEXT: "tokLen": 1396// 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": {{[0-9]+}},416// CHECK-NEXT: "col": 4,417// CHECK-NEXT: "tokLen": 1418// CHECK-NEXT: },419// CHECK-NEXT: "end": {420// CHECK-NEXT: "offset": {{[0-9]+}},421// CHECK-NEXT: "col": 9,422// CHECK-NEXT: "tokLen": 1423// 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": {{[0-9]+}},432// CHECK-NEXT: "col": 6,433// CHECK-NEXT: "tokLen": 1434// CHECK-NEXT: },435// CHECK-NEXT: "end": {436// CHECK-NEXT: "offset": {{[0-9]+}},437// CHECK-NEXT: "col": 6,438// CHECK-NEXT: "tokLen": 1439// CHECK-NEXT: }440// CHECK-NEXT: },441// CHECK-NEXT: "type": {442// CHECK-NEXT: "qualType": "int"443// CHECK-NEXT: },444// CHECK-NEXT: "valueCategory": "prvalue",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": {{[0-9]+}},453// CHECK-NEXT: "col": 6,454// CHECK-NEXT: "tokLen": 1455// CHECK-NEXT: },456// CHECK-NEXT: "end": {457// CHECK-NEXT: "offset": {{[0-9]+}},458// CHECK-NEXT: "col": 6,459// CHECK-NEXT: "tokLen": 1460// 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-NOT: {{^}}Dumping492// 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": 19499// CHECK-NEXT: },500// CHECK-NEXT: "range": {501// CHECK-NEXT: "begin": {502// CHECK-NEXT: "offset": {{[0-9]+}},503// CHECK-NEXT: "col": 1,504// CHECK-NEXT: "tokLen": 4505// CHECK-NEXT: },506// CHECK-NEXT: "end": {507// CHECK-NEXT: "offset": {{[0-9]+}},508// CHECK-NEXT: "line": 20,509// CHECK-NEXT: "col": 1,510// CHECK-NEXT: "tokLen": 1511// CHECK-NEXT: }512// CHECK-NEXT: },513// CHECK-NEXT: "name": "TestObjCAtCatchStmt",514// CHECK-NEXT: "mangledName": "TestObjCAtCatchStmt",515// CHECK-NEXT: "type": {516// CHECK-NEXT: "qualType": "void (void)"517// CHECK-NEXT: },518// CHECK-NEXT: "inner": [519// CHECK-NEXT: {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": 1528// CHECK-NEXT: },529// CHECK-NEXT: "end": {530// CHECK-NEXT: "offset": {{[0-9]+}},531// CHECK-NEXT: "line": 20,532// CHECK-NEXT: "col": 1,533// CHECK-NEXT: "tokLen": 1534// CHECK-NEXT: }535// CHECK-NEXT: },536// CHECK-NEXT: "inner": [537// CHECK-NEXT: {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": 1546// CHECK-NEXT: },547// CHECK-NEXT: "end": {548// CHECK-NEXT: "offset": {{[0-9]+}},549// CHECK-NEXT: "line": 19,550// CHECK-NEXT: "col": 3,551// CHECK-NEXT: "tokLen": 1552// CHECK-NEXT: }553// CHECK-NEXT: },554// CHECK-NEXT: "inner": [555// CHECK-NEXT: {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": 1564// CHECK-NEXT: },565// CHECK-NEXT: "end": {566// CHECK-NEXT: "offset": {{[0-9]+}},567// CHECK-NEXT: "line": 16,568// CHECK-NEXT: "col": 3,569// CHECK-NEXT: "tokLen": 1570// CHECK-NEXT: }571// CHECK-NEXT: }572// CHECK-NEXT: },573// CHECK-NEXT: {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": 1581// CHECK-NEXT: },582// CHECK-NEXT: "end": {583// CHECK-NEXT: "offset": {{[0-9]+}},584// CHECK-NEXT: "line": 17,585// CHECK-NEXT: "col": 3,586// CHECK-NEXT: "tokLen": 1587// CHECK-NEXT: }588// CHECK-NEXT: },589// CHECK-NEXT: "inner": [590// CHECK-NEXT: {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": 1598// CHECK-NEXT: },599// CHECK-NEXT: "range": {600// CHECK-NEXT: "begin": {601// CHECK-NEXT: "offset": {{[0-9]+}},602// CHECK-NEXT: "col": 12,603// CHECK-NEXT: "tokLen": 1604// CHECK-NEXT: },605// CHECK-NEXT: "end": {606// CHECK-NEXT: "offset": {{[0-9]+}},607// CHECK-NEXT: "col": 15,608// CHECK-NEXT: "tokLen": 1609// CHECK-NEXT: }610// CHECK-NEXT: },611// CHECK-NEXT: "name": "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": {{[0-9]+}},622// CHECK-NEXT: "col": 18,623// CHECK-NEXT: "tokLen": 1624// CHECK-NEXT: },625// CHECK-NEXT: "end": {626// CHECK-NEXT: "offset": {{[0-9]+}},627// CHECK-NEXT: "line": 17,628// CHECK-NEXT: "col": 3,629// CHECK-NEXT: "tokLen": 1630// 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": {{[0-9]+}},641// CHECK-NEXT: "col": 5,642// CHECK-NEXT: "tokLen": 1643// CHECK-NEXT: },644// CHECK-NEXT: "end": {645// CHECK-NEXT: "offset": {{[0-9]+}},646// CHECK-NEXT: "line": 18,647// CHECK-NEXT: "col": 3,648// CHECK-NEXT: "tokLen": 1649// 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": {{[0-9]+}},659// CHECK-NEXT: "line": 17,660// CHECK-NEXT: "col": 17,661// CHECK-NEXT: "tokLen": 1662// CHECK-NEXT: },663// CHECK-NEXT: "end": {664// CHECK-NEXT: "offset": {{[0-9]+}},665// CHECK-NEXT: "line": 18,666// CHECK-NEXT: "col": 3,667// CHECK-NEXT: "tokLen": 1668// 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": {{[0-9]+}},679// CHECK-NEXT: "col": 5,680// CHECK-NEXT: "tokLen": 1681// CHECK-NEXT: },682// CHECK-NEXT: "end": {683// CHECK-NEXT: "offset": {{[0-9]+}},684// CHECK-NEXT: "line": 19,685// CHECK-NEXT: "col": 3,686// CHECK-NEXT: "tokLen": 1687// 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": {{[0-9]+}},696// CHECK-NEXT: "line": 18,697// CHECK-NEXT: "col": 14,698// CHECK-NEXT: "tokLen": 1699// CHECK-NEXT: },700// CHECK-NEXT: "end": {701// CHECK-NEXT: "offset": {{[0-9]+}},702// CHECK-NEXT: "line": 19,703// CHECK-NEXT: "col": 3,704// CHECK-NEXT: "tokLen": 1705// 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": {{[0-9]+}},723// CHECK-NEXT: "line": 18,724// CHECK-NEXT: "col": 14,725// CHECK-NEXT: "tokLen": 1726// CHECK-NEXT: },727// CHECK-NEXT: "end": {728// CHECK-NEXT: "offset": {{[0-9]+}},729// CHECK-NEXT: "line": 19,730// CHECK-NEXT: "col": 3,731// CHECK-NEXT: "tokLen": 1732// 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": {{[0-9]+}},740// CHECK-NEXT: "line": 18,741// CHECK-NEXT: "col": 14,742// CHECK-NEXT: "tokLen": 1743// CHECK-NEXT: },744// CHECK-NEXT: "range": {745// CHECK-NEXT: "begin": {746// CHECK-NEXT: "offset": {{[0-9]+}},747// CHECK-NEXT: "col": 14,748// CHECK-NEXT: "tokLen": 1749// CHECK-NEXT: },750// CHECK-NEXT: "end": {751// CHECK-NEXT: "offset": {{[0-9]+}},752// CHECK-NEXT: "col": 14,753// CHECK-NEXT: "tokLen": 1754// CHECK-NEXT: }755// CHECK-NEXT: },756// CHECK-NEXT: "isImplicit": true,757// CHECK-NEXT: "name": "__context",758// CHECK-NEXT: "type": {759// CHECK-NEXT: "qualType": "struct (unnamed at {{.*}}:18:14) *"760// CHECK-NEXT: }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