930 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s2 3struct A {4 int arr[1];5};6 7struct B {8 const A &a = A{{0}};9};10 11void test() {12 B b{};13}14 15// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py16 17 18// CHECK-NOT: {{^}}Dumping19// CHECK: "kind": "TranslationUnitDecl",20// CHECK-NEXT: "loc": {},21// CHECK-NEXT: "range": {22// CHECK-NEXT: "begin": {},23// CHECK-NEXT: "end": {}24// CHECK-NEXT: },25// CHECK-NEXT: "inner": [26// CHECK-NEXT: {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": {}33// CHECK-NEXT: },34// CHECK-NEXT: "isImplicit": true,35// CHECK-NEXT: "name": "__int128_t",36// CHECK-NEXT: "type": {37// CHECK-NEXT: "qualType": "__int128"38// CHECK-NEXT: },39// CHECK-NEXT: "inner": [40// CHECK-NEXT: {41// CHECK-NEXT: "id": "0x{{.*}}",42// CHECK-NEXT: "kind": "BuiltinType",43// CHECK-NEXT: "type": {44// CHECK-NEXT: "qualType": "__int128"45// CHECK-NEXT: }46// CHECK-NEXT: }47// CHECK-NEXT: ]48// CHECK-NEXT: },49// CHECK-NEXT: {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": {}56// CHECK-NEXT: },57// CHECK-NEXT: "isImplicit": true,58// CHECK-NEXT: "name": "__uint128_t",59// CHECK-NEXT: "type": {60// CHECK-NEXT: "qualType": "unsigned __int128"61// CHECK-NEXT: },62// CHECK-NEXT: "inner": [63// CHECK-NEXT: {64// CHECK-NEXT: "id": "0x{{.*}}",65// CHECK-NEXT: "kind": "BuiltinType",66// CHECK-NEXT: "type": {67// CHECK-NEXT: "qualType": "unsigned __int128"68// CHECK-NEXT: }69// CHECK-NEXT: }70// CHECK-NEXT: ]71// CHECK-NEXT: },72// CHECK-NEXT: {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": {}79// CHECK-NEXT: },80// CHECK-NEXT: "isImplicit": true,81// CHECK-NEXT: "name": "__NSConstantString",82// CHECK-NEXT: "type": {83// CHECK-NEXT: "qualType": "__NSConstantString_tag"84// CHECK-NEXT: },85// CHECK-NEXT: "inner": [86// CHECK-NEXT: {87// CHECK-NEXT: "id": "0x{{.*}}",88// CHECK-NEXT: "kind": "RecordType",89// CHECK-NEXT: "type": {90// CHECK-NEXT: "qualType": "__NSConstantString_tag"91// CHECK-NEXT: },92// CHECK-NEXT: "decl": {93// CHECK-NEXT: "id": "0x{{.*}}",94// CHECK-NEXT: "kind": "CXXRecordDecl",95// CHECK-NEXT: "name": "__NSConstantString_tag"96// CHECK-NEXT: }97// CHECK-NEXT: }98// CHECK-NEXT: ]99// CHECK-NEXT: },100// CHECK-NEXT: {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": {}107// CHECK-NEXT: },108// CHECK-NEXT: "isImplicit": true,109// CHECK-NEXT: "name": "__builtin_ms_va_list",110// CHECK-NEXT: "type": {111// CHECK-NEXT: "qualType": "char *"112// CHECK-NEXT: },113// CHECK-NEXT: "inner": [114// CHECK-NEXT: {115// CHECK-NEXT: "id": "0x{{.*}}",116// CHECK-NEXT: "kind": "PointerType",117// CHECK-NEXT: "type": {118// CHECK-NEXT: "qualType": "char *"119// CHECK-NEXT: },120// CHECK-NEXT: "inner": [121// CHECK-NEXT: {122// CHECK-NEXT: "id": "0x{{.*}}",123// CHECK-NEXT: "kind": "BuiltinType",124// CHECK-NEXT: "type": {125// CHECK-NEXT: "qualType": "char"126// CHECK-NEXT: }127// CHECK-NEXT: }128// CHECK-NEXT: ]129// CHECK-NEXT: }130// CHECK-NEXT: ]131// CHECK-NEXT: },132// CHECK-NEXT: {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": {}139// CHECK-NEXT: },140// CHECK-NEXT: "isImplicit": true,141// CHECK-NEXT: "name": "__builtin_va_list",142// CHECK-NEXT: "type": {143// CHECK-NEXT: "qualType": "__va_list_tag[1]"144// CHECK-NEXT: },145// CHECK-NEXT: "inner": [146// CHECK-NEXT: {147// CHECK-NEXT: "id": "0x{{.*}}",148// CHECK-NEXT: "kind": "ConstantArrayType",149// CHECK-NEXT: "type": {150// CHECK-NEXT: "qualType": "__va_list_tag[1]"151// CHECK-NEXT: },152// CHECK-NEXT: "size": 1,153// CHECK-NEXT: "inner": [154// CHECK-NEXT: {155// CHECK-NEXT: "id": "0x{{.*}}",156// CHECK-NEXT: "kind": "RecordType",157// CHECK-NEXT: "type": {158// CHECK-NEXT: "qualType": "__va_list_tag"159// CHECK-NEXT: },160// CHECK-NEXT: "decl": {161// CHECK-NEXT: "id": "0x{{.*}}",162// CHECK-NEXT: "kind": "CXXRecordDecl",163// CHECK-NEXT: "name": "__va_list_tag"164// CHECK-NEXT: }165// CHECK-NEXT: }166// CHECK-NEXT: ]167// CHECK-NEXT: }168// CHECK-NEXT: ]169// CHECK-NEXT: },170// CHECK-NEXT: {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": 1179// CHECK-NEXT: },180// CHECK-NEXT: "range": {181// CHECK-NEXT: "begin": {182// CHECK-NEXT: "offset": 92,183// CHECK-NEXT: "col": 1,184// CHECK-NEXT: "tokLen": 6185// CHECK-NEXT: },186// CHECK-NEXT: "end": {187// CHECK-NEXT: "offset": 117,188// CHECK-NEXT: "line": 5,189// CHECK-NEXT: "col": 1,190// CHECK-NEXT: "tokLen": 1191// CHECK-NEXT: }192// CHECK-NEXT: },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": true205// CHECK-NEXT: },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": true212// CHECK-NEXT: },213// CHECK-NEXT: "defaultCtor": {214// CHECK-NEXT: "exists": true,215// CHECK-NEXT: "needsImplicit": true,216// CHECK-NEXT: "trivial": true217// CHECK-NEXT: },218// CHECK-NEXT: "dtor": {219// CHECK-NEXT: "irrelevant": true,220// CHECK-NEXT: "simple": true,221// CHECK-NEXT: "trivial": true222// CHECK-NEXT: },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": true234// CHECK-NEXT: },235// CHECK-NEXT: "moveCtor": {236// CHECK-NEXT: "exists": true,237// CHECK-NEXT: "needsImplicit": true,238// CHECK-NEXT: "simple": true,239// CHECK-NEXT: "trivial": true240// CHECK-NEXT: }241// CHECK-NEXT: },242// CHECK-NEXT: "inner": [243// CHECK-NEXT: {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": 1251// CHECK-NEXT: },252// CHECK-NEXT: "range": {253// CHECK-NEXT: "begin": {254// CHECK-NEXT: "offset": 92,255// CHECK-NEXT: "col": 1,256// CHECK-NEXT: "tokLen": 6257// CHECK-NEXT: },258// CHECK-NEXT: "end": {259// CHECK-NEXT: "offset": 99,260// CHECK-NEXT: "col": 8,261// CHECK-NEXT: "tokLen": 1262// CHECK-NEXT: }263// CHECK-NEXT: },264// CHECK-NEXT: "isImplicit": true,265// CHECK-NEXT: "name": "A",266// CHECK-NEXT: "tagUsed": "struct"267// CHECK-NEXT: },268// CHECK-NEXT: {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": 3276// CHECK-NEXT: },277// CHECK-NEXT: "range": {278// CHECK-NEXT: "begin": {279// CHECK-NEXT: "offset": 105,280// CHECK-NEXT: "col": 3,281// CHECK-NEXT: "tokLen": 3282// CHECK-NEXT: },283// CHECK-NEXT: "end": {284// CHECK-NEXT: "offset": 114,285// CHECK-NEXT: "col": 12,286// CHECK-NEXT: "tokLen": 1287// CHECK-NEXT: }288// CHECK-NEXT: },289// CHECK-NEXT: "name": "arr",290// CHECK-NEXT: "type": {291// CHECK-NEXT: "qualType": "int[1]"292// CHECK-NEXT: }293// CHECK-NEXT: },294// CHECK-NEXT: {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": 1302// CHECK-NEXT: },303// CHECK-NEXT: "range": {304// CHECK-NEXT: "begin": {305// CHECK-NEXT: "offset": 99,306// CHECK-NEXT: "col": 8,307// CHECK-NEXT: "tokLen": 1308// CHECK-NEXT: },309// CHECK-NEXT: "end": {310// CHECK-NEXT: "offset": 99,311// CHECK-NEXT: "col": 8,312// CHECK-NEXT: "tokLen": 1313// CHECK-NEXT: }314// CHECK-NEXT: },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"321// CHECK-NEXT: },322// CHECK-NEXT: "inline": true,323// CHECK-NEXT: "explicitlyDefaulted": "default"324// CHECK-NEXT: }325// CHECK-NEXT: ]326// CHECK-NEXT: },327// CHECK-NEXT: {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": 1335// CHECK-NEXT: },336// CHECK-NEXT: "range": {337// CHECK-NEXT: "begin": {338// CHECK-NEXT: "offset": 121,339// CHECK-NEXT: "col": 1,340// CHECK-NEXT: "tokLen": 6341// CHECK-NEXT: },342// CHECK-NEXT: "end": {343// CHECK-NEXT: "offset": 155,344// CHECK-NEXT: "line": 9,345// CHECK-NEXT: "col": 1,346// CHECK-NEXT: "tokLen": 1347// CHECK-NEXT: }348// CHECK-NEXT: },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": true361// CHECK-NEXT: },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": true368// CHECK-NEXT: },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": true375// CHECK-NEXT: },376// CHECK-NEXT: "dtor": {377// CHECK-NEXT: "irrelevant": true,378// CHECK-NEXT: "needsImplicit": true,379// CHECK-NEXT: "simple": true,380// CHECK-NEXT: "trivial": true381// CHECK-NEXT: },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": true390// CHECK-NEXT: },391// CHECK-NEXT: "moveCtor": {392// CHECK-NEXT: "exists": true,393// CHECK-NEXT: "needsImplicit": true,394// CHECK-NEXT: "simple": true,395// CHECK-NEXT: "trivial": true396// CHECK-NEXT: }397// CHECK-NEXT: },398// CHECK-NEXT: "inner": [399// CHECK-NEXT: {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": 1407// CHECK-NEXT: },408// CHECK-NEXT: "range": {409// CHECK-NEXT: "begin": {410// CHECK-NEXT: "offset": 121,411// CHECK-NEXT: "col": 1,412// CHECK-NEXT: "tokLen": 6413// CHECK-NEXT: },414// CHECK-NEXT: "end": {415// CHECK-NEXT: "offset": 128,416// CHECK-NEXT: "col": 8,417// CHECK-NEXT: "tokLen": 1418// CHECK-NEXT: }419// CHECK-NEXT: },420// CHECK-NEXT: "isImplicit": true,421// CHECK-NEXT: "name": "B",422// CHECK-NEXT: "tagUsed": "struct"423// CHECK-NEXT: },424// CHECK-NEXT: {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": 1432// CHECK-NEXT: },433// CHECK-NEXT: "range": {434// CHECK-NEXT: "begin": {435// CHECK-NEXT: "offset": 134,436// CHECK-NEXT: "col": 3,437// CHECK-NEXT: "tokLen": 5438// CHECK-NEXT: },439// CHECK-NEXT: "end": {440// CHECK-NEXT: "offset": 152,441// CHECK-NEXT: "col": 21,442// CHECK-NEXT: "tokLen": 1443// CHECK-NEXT: }444// CHECK-NEXT: },445// CHECK-NEXT: "name": "a",446// CHECK-NEXT: "type": {447// CHECK-NEXT: "qualType": "const A &"448// CHECK-NEXT: },449// CHECK-NEXT: "hasInClassInitializer": true,450// CHECK-NEXT: "inner": [451// CHECK-NEXT: {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": 1459// CHECK-NEXT: },460// CHECK-NEXT: "end": {461// CHECK-NEXT: "offset": 152,462// CHECK-NEXT: "col": 21,463// CHECK-NEXT: "tokLen": 1464// CHECK-NEXT: }465// CHECK-NEXT: },466// CHECK-NEXT: "type": {467// CHECK-NEXT: "qualType": "const A"468// CHECK-NEXT: },469// CHECK-NEXT: "valueCategory": "lvalue",470// CHECK-NEXT: "inner": [471// CHECK-NEXT: {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": 1479// CHECK-NEXT: },480// CHECK-NEXT: "end": {481// CHECK-NEXT: "offset": 152,482// CHECK-NEXT: "col": 21,483// CHECK-NEXT: "tokLen": 1484// CHECK-NEXT: }485// CHECK-NEXT: },486// CHECK-NEXT: "type": {487// CHECK-NEXT: "qualType": "const A"488// CHECK-NEXT: },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 &"496// CHECK-NEXT: }497// CHECK-NEXT: },498// CHECK-NEXT: "storageDuration": "automatic",499// CHECK-NEXT: "boundToLValueRef": true,500// CHECK-NEXT: "inner": [501// CHECK-NEXT: {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": 1509// CHECK-NEXT: },510// CHECK-NEXT: "end": {511// CHECK-NEXT: "offset": 152,512// CHECK-NEXT: "col": 21,513// CHECK-NEXT: "tokLen": 1514// CHECK-NEXT: }515// CHECK-NEXT: },516// CHECK-NEXT: "type": {517// CHECK-NEXT: "qualType": "const A"518// CHECK-NEXT: },519// CHECK-NEXT: "valueCategory": "prvalue",520// CHECK-NEXT: "castKind": "NoOp",521// CHECK-NEXT: "inner": [522// CHECK-NEXT: {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": 1530// CHECK-NEXT: },531// CHECK-NEXT: "end": {532// CHECK-NEXT: "offset": 152,533// CHECK-NEXT: "col": 21,534// CHECK-NEXT: "tokLen": 1535// CHECK-NEXT: }536// CHECK-NEXT: },537// CHECK-NEXT: "type": {538// CHECK-NEXT: "qualType": "A"539// CHECK-NEXT: },540// CHECK-NEXT: "valueCategory": "prvalue",541// CHECK-NEXT: "castKind": "NoOp",542// CHECK-NEXT: "inner": [543// CHECK-NEXT: {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": 1551// CHECK-NEXT: },552// CHECK-NEXT: "end": {553// CHECK-NEXT: "offset": 152,554// CHECK-NEXT: "col": 21,555// CHECK-NEXT: "tokLen": 1556// CHECK-NEXT: }557// CHECK-NEXT: },558// CHECK-NEXT: "type": {559// CHECK-NEXT: "qualType": "A"560// CHECK-NEXT: },561// CHECK-NEXT: "valueCategory": "prvalue",562// CHECK-NEXT: "inner": [563// CHECK-NEXT: {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": 1571// CHECK-NEXT: },572// CHECK-NEXT: "end": {573// CHECK-NEXT: "offset": 151,574// CHECK-NEXT: "col": 20,575// CHECK-NEXT: "tokLen": 1576// CHECK-NEXT: }577// CHECK-NEXT: },578// CHECK-NEXT: "type": {579// CHECK-NEXT: "qualType": "int[1]"580// CHECK-NEXT: },581// CHECK-NEXT: "valueCategory": "prvalue",582// CHECK-NEXT: "inner": [583// CHECK-NEXT: {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": 1591// CHECK-NEXT: },592// CHECK-NEXT: "end": {593// CHECK-NEXT: "offset": 150,594// CHECK-NEXT: "col": 19,595// CHECK-NEXT: "tokLen": 1596// CHECK-NEXT: }597// CHECK-NEXT: },598// CHECK-NEXT: "type": {599// CHECK-NEXT: "qualType": "int"600// CHECK-NEXT: },601// CHECK-NEXT: "valueCategory": "prvalue",602// CHECK-NEXT: "value": "0"603// CHECK-NEXT: }604// CHECK-NEXT: ]605// CHECK-NEXT: }606// CHECK-NEXT: ]607// CHECK-NEXT: }608// CHECK-NEXT: ]609// CHECK-NEXT: }610// CHECK-NEXT: ]611// CHECK-NEXT: }612// CHECK-NEXT: ]613// CHECK-NEXT: }614// CHECK-NEXT: ]615// CHECK-NEXT: }616// CHECK-NEXT: ]617// CHECK-NEXT: }618// CHECK-NEXT: ]619// CHECK-NEXT: },620// CHECK-NEXT: {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": 4628// CHECK-NEXT: },629// CHECK-NEXT: "range": {630// CHECK-NEXT: "begin": {631// CHECK-NEXT: "offset": 159,632// CHECK-NEXT: "col": 1,633// CHECK-NEXT: "tokLen": 4634// CHECK-NEXT: },635// CHECK-NEXT: "end": {636// CHECK-NEXT: "offset": 182,637// CHECK-NEXT: "line": 13,638// CHECK-NEXT: "col": 1,639// CHECK-NEXT: "tokLen": 1640// CHECK-NEXT: }641// CHECK-NEXT: },642// CHECK-NEXT: "name": "test",643// CHECK-NEXT: "mangledName": "_Z4testv",644// CHECK-NEXT: "type": {645// CHECK-NEXT: "qualType": "void ()"646// CHECK-NEXT: },647// CHECK-NEXT: "inner": [648// CHECK-NEXT: {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": 1657// CHECK-NEXT: },658// CHECK-NEXT: "end": {659// CHECK-NEXT: "offset": 182,660// CHECK-NEXT: "line": 13,661// CHECK-NEXT: "col": 1,662// CHECK-NEXT: "tokLen": 1663// CHECK-NEXT: }664// CHECK-NEXT: },665// CHECK-NEXT: "inner": [666// CHECK-NEXT: {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": 1675// CHECK-NEXT: },676// CHECK-NEXT: "end": {677// CHECK-NEXT: "offset": 180,678// CHECK-NEXT: "col": 8,679// CHECK-NEXT: "tokLen": 1680// CHECK-NEXT: }681// CHECK-NEXT: },682// CHECK-NEXT: "inner": [683// CHECK-NEXT: {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": 1690// CHECK-NEXT: },691// CHECK-NEXT: "range": {692// CHECK-NEXT: "begin": {693// CHECK-NEXT: "offset": 175,694// CHECK-NEXT: "col": 3,695// CHECK-NEXT: "tokLen": 1696// CHECK-NEXT: },697// CHECK-NEXT: "end": {698// CHECK-NEXT: "offset": 179,699// CHECK-NEXT: "col": 7,700// CHECK-NEXT: "tokLen": 1701// CHECK-NEXT: }702// CHECK-NEXT: },703// CHECK-NEXT: "name": "b",704// CHECK-NEXT: "type": {705// CHECK-NEXT: "qualType": "B"706// CHECK-NEXT: },707// CHECK-NEXT: "init": "list",708// CHECK-NEXT: "inner": [709// CHECK-NEXT: {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": 1717// CHECK-NEXT: },718// CHECK-NEXT: "end": {719// CHECK-NEXT: "offset": 179,720// CHECK-NEXT: "col": 7,721// CHECK-NEXT: "tokLen": 1722// CHECK-NEXT: }723// CHECK-NEXT: },724// CHECK-NEXT: "type": {725// CHECK-NEXT: "qualType": "B"726// CHECK-NEXT: },727// CHECK-NEXT: "valueCategory": "prvalue",728// CHECK-NEXT: "inner": [729// CHECK-NEXT: {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": 1737// CHECK-NEXT: },738// CHECK-NEXT: "end": {739// CHECK-NEXT: "offset": 179,740// CHECK-NEXT: "col": 7,741// CHECK-NEXT: "tokLen": 1742// CHECK-NEXT: }743// CHECK-NEXT: },744// CHECK-NEXT: "type": {745// CHECK-NEXT: "qualType": "const A"746// CHECK-NEXT: },747// CHECK-NEXT: "valueCategory": "lvalue",748// CHECK-NEXT: "hasRewrittenInit": true,749// CHECK-NEXT: "inner": [750// CHECK-NEXT: {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": 1759// CHECK-NEXT: },760// CHECK-NEXT: "end": {761// CHECK-NEXT: "offset": 152,762// CHECK-NEXT: "col": 21,763// CHECK-NEXT: "tokLen": 1764// CHECK-NEXT: }765// CHECK-NEXT: },766// CHECK-NEXT: "type": {767// CHECK-NEXT: "qualType": "const A"768// CHECK-NEXT: },769// CHECK-NEXT: "valueCategory": "lvalue",770// CHECK-NEXT: "inner": [771// CHECK-NEXT: {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": 1779// CHECK-NEXT: },780// CHECK-NEXT: "end": {781// CHECK-NEXT: "offset": 152,782// CHECK-NEXT: "col": 21,783// CHECK-NEXT: "tokLen": 1784// CHECK-NEXT: }785// CHECK-NEXT: },786// CHECK-NEXT: "type": {787// CHECK-NEXT: "qualType": "const A"788// CHECK-NEXT: },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"796// CHECK-NEXT: }797// CHECK-NEXT: },798// CHECK-NEXT: "storageDuration": "automatic",799// CHECK-NEXT: "boundToLValueRef": true,800// CHECK-NEXT: "inner": [801// CHECK-NEXT: {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": 1809// CHECK-NEXT: },810// CHECK-NEXT: "end": {811// CHECK-NEXT: "offset": 152,812// CHECK-NEXT: "col": 21,813// CHECK-NEXT: "tokLen": 1814// CHECK-NEXT: }815// CHECK-NEXT: },816// CHECK-NEXT: "type": {817// CHECK-NEXT: "qualType": "const A"818// CHECK-NEXT: },819// CHECK-NEXT: "valueCategory": "prvalue",820// CHECK-NEXT: "castKind": "NoOp",821// CHECK-NEXT: "inner": [822// CHECK-NEXT: {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": 1830// CHECK-NEXT: },831// CHECK-NEXT: "end": {832// CHECK-NEXT: "offset": 152,833// CHECK-NEXT: "col": 21,834// CHECK-NEXT: "tokLen": 1835// CHECK-NEXT: }836// CHECK-NEXT: },837// CHECK-NEXT: "type": {838// CHECK-NEXT: "qualType": "A"839// CHECK-NEXT: },840// CHECK-NEXT: "valueCategory": "prvalue",841// CHECK-NEXT: "castKind": "NoOp",842// CHECK-NEXT: "inner": [843// CHECK-NEXT: {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": 1851// CHECK-NEXT: },852// CHECK-NEXT: "end": {853// CHECK-NEXT: "offset": 152,854// CHECK-NEXT: "col": 21,855// CHECK-NEXT: "tokLen": 1856// CHECK-NEXT: }857// CHECK-NEXT: },858// CHECK-NEXT: "type": {859// CHECK-NEXT: "qualType": "A"860// CHECK-NEXT: },861// CHECK-NEXT: "valueCategory": "prvalue",862// CHECK-NEXT: "inner": [863// CHECK-NEXT: {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": 1871// CHECK-NEXT: },872// CHECK-NEXT: "end": {873// CHECK-NEXT: "offset": 151,874// CHECK-NEXT: "col": 20,875// CHECK-NEXT: "tokLen": 1876// CHECK-NEXT: }877// CHECK-NEXT: },878// CHECK-NEXT: "type": {879// CHECK-NEXT: "qualType": "int[1]"880// CHECK-NEXT: },881// CHECK-NEXT: "valueCategory": "prvalue",882// CHECK-NEXT: "inner": [883// CHECK-NEXT: {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": 1891// CHECK-NEXT: },892// CHECK-NEXT: "end": {893// CHECK-NEXT: "offset": 150,894// CHECK-NEXT: "col": 19,895// CHECK-NEXT: "tokLen": 1896// CHECK-NEXT: }897// CHECK-NEXT: },898// CHECK-NEXT: "type": {899// CHECK-NEXT: "qualType": "int"900// CHECK-NEXT: },901// CHECK-NEXT: "valueCategory": "prvalue",902// CHECK-NEXT: "value": "0"903// CHECK-NEXT: }904// CHECK-NEXT: ]905// CHECK-NEXT: }906// CHECK-NEXT: ]907// CHECK-NEXT: }908// CHECK-NEXT: ]909// CHECK-NEXT: }910// CHECK-NEXT: ]911// CHECK-NEXT: }912// CHECK-NEXT: ]913// CHECK-NEXT: }914// CHECK-NEXT: ]915// CHECK-NEXT: }916// CHECK-NEXT: ]917// CHECK-NEXT: }918// CHECK-NEXT: ]919// CHECK-NEXT: }920// CHECK-NEXT: ]921// CHECK-NEXT: }922// CHECK-NEXT: ]923// CHECK-NEXT: }924// CHECK-NEXT: ]925// CHECK-NEXT: }926// CHECK-NEXT: ]927// CHECK-NEXT: }928// CHECK-NEXT: ]929// CHECK-NEXT: }930