1416 lines · cpp
1// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json -ast-dump-filter Test %s | FileCheck %s2 3struct S {4 void Test1();5 void Test2() const;6 void Test3() volatile;7 void Test4() &;8 void Test5() &&;9 virtual void Test6(float, int = 12);10 virtual void Test7() = 0;11};12 13struct T : S { // T is not referenced, but S is14 void Test6(float, int = 100) override;15};16 17struct U {18 void Test1();19};20void U::Test1() {} // parent21 22void Test1();23void Test2(void);24void Test3(int a, int b);25void Test4(int a, int b = 12);26constexpr void Test5(void);27static void Test6(void);28extern void Test7(void);29inline void Test8(void);30void Test9(void) noexcept;31void Test10(void) noexcept(false);32void Test11(void) noexcept(1);33 34template <typename T>35T Test12(T&);36 37void Test13(int) {}38void Test14(int, ...) {}39 40int main() {41 Test1(); // Causes this to be marked 'used'42}43 44template <typename ...Ts>45struct TestFriends {46 friend Ts...;47};48 49// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py50 51 52// CHECK-NOT: {{^}}Dumping53// CHECK: "kind": "CXXMethodDecl",54// CHECK-NEXT: "loc": {55// CHECK-NEXT: "offset": 124,56// CHECK-NEXT: "file": "{{.*}}",57// CHECK-NEXT: "line": 4,58// CHECK-NEXT: "col": 8,59// CHECK-NEXT: "tokLen": 560// CHECK-NEXT: },61// CHECK-NEXT: "range": {62// CHECK-NEXT: "begin": {63// CHECK-NEXT: "offset": 119,64// CHECK-NEXT: "col": 3,65// CHECK-NEXT: "tokLen": 466// CHECK-NEXT: },67// CHECK-NEXT: "end": {68// CHECK-NEXT: "offset": 130,69// CHECK-NEXT: "col": 14,70// CHECK-NEXT: "tokLen": 171// CHECK-NEXT: }72// CHECK-NEXT: },73// CHECK-NEXT: "name": "Test1",74// CHECK-NEXT: "mangledName": "_ZN1S5Test1Ev",75// CHECK-NEXT: "type": {76// CHECK-NEXT: "qualType": "void ()"77// CHECK-NEXT: }78// CHECK-NEXT: }79 80 81// CHECK-NOT: {{^}}Dumping82// CHECK: "kind": "CXXMethodDecl",83// CHECK-NEXT: "loc": {84// CHECK-NEXT: "offset": 140,85// CHECK-NEXT: "file": "{{.*}}",86// CHECK-NEXT: "line": 5,87// CHECK-NEXT: "col": 8,88// CHECK-NEXT: "tokLen": 589// CHECK-NEXT: },90// CHECK-NEXT: "range": {91// CHECK-NEXT: "begin": {92// CHECK-NEXT: "offset": 135,93// CHECK-NEXT: "col": 3,94// CHECK-NEXT: "tokLen": 495// CHECK-NEXT: },96// CHECK-NEXT: "end": {97// CHECK-NEXT: "offset": 148,98// CHECK-NEXT: "col": 16,99// CHECK-NEXT: "tokLen": 5100// CHECK-NEXT: }101// CHECK-NEXT: },102// CHECK-NEXT: "name": "Test2",103// CHECK-NEXT: "mangledName": "_ZNK1S5Test2Ev",104// CHECK-NEXT: "type": {105// CHECK-NEXT: "qualType": "void () const"106// CHECK-NEXT: }107// CHECK-NEXT: }108 109 110// CHECK-NOT: {{^}}Dumping111// CHECK: "kind": "CXXMethodDecl",112// CHECK-NEXT: "loc": {113// CHECK-NEXT: "offset": 162,114// CHECK-NEXT: "file": "{{.*}}",115// CHECK-NEXT: "line": 6,116// CHECK-NEXT: "col": 8,117// CHECK-NEXT: "tokLen": 5118// CHECK-NEXT: },119// CHECK-NEXT: "range": {120// CHECK-NEXT: "begin": {121// CHECK-NEXT: "offset": 157,122// CHECK-NEXT: "col": 3,123// CHECK-NEXT: "tokLen": 4124// CHECK-NEXT: },125// CHECK-NEXT: "end": {126// CHECK-NEXT: "offset": 170,127// CHECK-NEXT: "col": 16,128// CHECK-NEXT: "tokLen": 8129// CHECK-NEXT: }130// CHECK-NEXT: },131// CHECK-NEXT: "name": "Test3",132// CHECK-NEXT: "mangledName": "_ZNV1S5Test3Ev",133// CHECK-NEXT: "type": {134// CHECK-NEXT: "qualType": "void () volatile"135// CHECK-NEXT: }136// CHECK-NEXT: }137 138 139// CHECK-NOT: {{^}}Dumping140// CHECK: "kind": "CXXMethodDecl",141// CHECK-NEXT: "loc": {142// CHECK-NEXT: "offset": 187,143// CHECK-NEXT: "file": "{{.*}}",144// CHECK-NEXT: "line": 7,145// CHECK-NEXT: "col": 8,146// CHECK-NEXT: "tokLen": 5147// CHECK-NEXT: },148// CHECK-NEXT: "range": {149// CHECK-NEXT: "begin": {150// CHECK-NEXT: "offset": 182,151// CHECK-NEXT: "col": 3,152// CHECK-NEXT: "tokLen": 4153// CHECK-NEXT: },154// CHECK-NEXT: "end": {155// CHECK-NEXT: "offset": 195,156// CHECK-NEXT: "col": 16,157// CHECK-NEXT: "tokLen": 1158// CHECK-NEXT: }159// CHECK-NEXT: },160// CHECK-NEXT: "name": "Test4",161// CHECK-NEXT: "mangledName": "_ZNR1S5Test4Ev",162// CHECK-NEXT: "type": {163// CHECK-NEXT: "qualType": "void () &"164// CHECK-NEXT: }165// CHECK-NEXT: }166 167 168// CHECK-NOT: {{^}}Dumping169// CHECK: "kind": "CXXMethodDecl",170// CHECK-NEXT: "loc": {171// CHECK-NEXT: "offset": 205,172// CHECK-NEXT: "file": "{{.*}}",173// CHECK-NEXT: "line": 8,174// CHECK-NEXT: "col": 8,175// CHECK-NEXT: "tokLen": 5176// CHECK-NEXT: },177// CHECK-NEXT: "range": {178// CHECK-NEXT: "begin": {179// CHECK-NEXT: "offset": 200,180// CHECK-NEXT: "col": 3,181// CHECK-NEXT: "tokLen": 4182// CHECK-NEXT: },183// CHECK-NEXT: "end": {184// CHECK-NEXT: "offset": 213,185// CHECK-NEXT: "col": 16,186// CHECK-NEXT: "tokLen": 2187// CHECK-NEXT: }188// CHECK-NEXT: },189// CHECK-NEXT: "name": "Test5",190// CHECK-NEXT: "mangledName": "_ZNO1S5Test5Ev",191// CHECK-NEXT: "type": {192// CHECK-NEXT: "qualType": "void () &&"193// CHECK-NEXT: }194// CHECK-NEXT: }195 196 197// CHECK-NOT: {{^}}Dumping198// CHECK: "kind": "CXXMethodDecl",199// CHECK-NEXT: "loc": {200// CHECK-NEXT: "offset": 232,201// CHECK-NEXT: "file": "{{.*}}",202// CHECK-NEXT: "line": 9,203// CHECK-NEXT: "col": 16,204// CHECK-NEXT: "tokLen": 5205// CHECK-NEXT: },206// CHECK-NEXT: "range": {207// CHECK-NEXT: "begin": {208// CHECK-NEXT: "offset": 219,209// CHECK-NEXT: "col": 3,210// CHECK-NEXT: "tokLen": 7211// CHECK-NEXT: },212// CHECK-NEXT: "end": {213// CHECK-NEXT: "offset": 253,214// CHECK-NEXT: "col": 37,215// CHECK-NEXT: "tokLen": 1216// CHECK-NEXT: }217// CHECK-NEXT: },218// CHECK-NEXT: "name": "Test6",219// CHECK-NEXT: "mangledName": "_ZN1S5Test6Efi",220// CHECK-NEXT: "type": {221// CHECK-NEXT: "qualType": "void (float, int)"222// CHECK-NEXT: },223// CHECK-NEXT: "virtual": true,224// CHECK-NEXT: "inner": [225// CHECK-NEXT: {226// CHECK-NEXT: "id": "0x{{.*}}",227// CHECK-NEXT: "kind": "ParmVarDecl",228// CHECK-NEXT: "loc": {229// CHECK-NEXT: "offset": 243,230// CHECK-NEXT: "col": 27,231// CHECK-NEXT: "tokLen": 1232// CHECK-NEXT: },233// CHECK-NEXT: "range": {234// CHECK-NEXT: "begin": {235// CHECK-NEXT: "offset": 238,236// CHECK-NEXT: "col": 22,237// CHECK-NEXT: "tokLen": 5238// CHECK-NEXT: },239// CHECK-NEXT: "end": {240// CHECK-NEXT: "offset": 238,241// CHECK-NEXT: "col": 22,242// CHECK-NEXT: "tokLen": 5243// CHECK-NEXT: }244// CHECK-NEXT: },245// CHECK-NEXT: "type": {246// CHECK-NEXT: "qualType": "float"247// CHECK-NEXT: }248// CHECK-NEXT: },249// CHECK-NEXT: {250// CHECK-NEXT: "id": "0x{{.*}}",251// CHECK-NEXT: "kind": "ParmVarDecl",252// CHECK-NEXT: "loc": {253// CHECK-NEXT: "offset": 249,254// CHECK-NEXT: "col": 33,255// CHECK-NEXT: "tokLen": 1256// CHECK-NEXT: },257// CHECK-NEXT: "range": {258// CHECK-NEXT: "begin": {259// CHECK-NEXT: "offset": 245,260// CHECK-NEXT: "col": 29,261// CHECK-NEXT: "tokLen": 3262// CHECK-NEXT: },263// CHECK-NEXT: "end": {264// CHECK-NEXT: "offset": 251,265// CHECK-NEXT: "col": 35,266// CHECK-NEXT: "tokLen": 2267// CHECK-NEXT: }268// CHECK-NEXT: },269// CHECK-NEXT: "type": {270// CHECK-NEXT: "qualType": "int"271// CHECK-NEXT: },272// CHECK-NEXT: "init": "c",273// CHECK-NEXT: "inner": [274// CHECK-NEXT: {275// CHECK-NEXT: "id": "0x{{.*}}",276// CHECK-NEXT: "kind": "IntegerLiteral",277// CHECK-NEXT: "range": {278// CHECK-NEXT: "begin": {279// CHECK-NEXT: "offset": 251,280// CHECK-NEXT: "col": 35,281// CHECK-NEXT: "tokLen": 2282// CHECK-NEXT: },283// CHECK-NEXT: "end": {284// CHECK-NEXT: "offset": 251,285// CHECK-NEXT: "col": 35,286// CHECK-NEXT: "tokLen": 2287// CHECK-NEXT: }288// CHECK-NEXT: },289// CHECK-NEXT: "type": {290// CHECK-NEXT: "qualType": "int"291// CHECK-NEXT: },292// CHECK-NEXT: "valueCategory": "prvalue",293// CHECK-NEXT: "value": "12"294// CHECK-NEXT: }295// CHECK-NEXT: ]296// CHECK-NEXT: }297// CHECK-NEXT: ]298// CHECK-NEXT: }299 300 301// CHECK-NOT: {{^}}Dumping302// CHECK: "kind": "CXXMethodDecl",303// CHECK-NEXT: "loc": {304// CHECK-NEXT: "offset": 271,305// CHECK-NEXT: "file": "{{.*}}",306// CHECK-NEXT: "line": 10,307// CHECK-NEXT: "col": 16,308// CHECK-NEXT: "tokLen": 5309// CHECK-NEXT: },310// CHECK-NEXT: "range": {311// CHECK-NEXT: "begin": {312// CHECK-NEXT: "offset": 258,313// CHECK-NEXT: "col": 3,314// CHECK-NEXT: "tokLen": 7315// CHECK-NEXT: },316// CHECK-NEXT: "end": {317// CHECK-NEXT: "offset": 281,318// CHECK-NEXT: "col": 26,319// CHECK-NEXT: "tokLen": 1320// CHECK-NEXT: }321// CHECK-NEXT: },322// CHECK-NEXT: "name": "Test7",323// CHECK-NEXT: "mangledName": "_ZN1S5Test7Ev",324// CHECK-NEXT: "type": {325// CHECK-NEXT: "qualType": "void ()"326// CHECK-NEXT: },327// CHECK-NEXT: "virtual": true,328// CHECK-NEXT: "pure": true329// CHECK-NEXT: }330 331 332// CHECK-NOT: {{^}}Dumping333// CHECK: "kind": "CXXMethodDecl",334// CHECK-NEXT: "loc": {335// CHECK-NEXT: "offset": 343,336// CHECK-NEXT: "file": "{{.*}}",337// CHECK-NEXT: "line": 14,338// CHECK-NEXT: "col": 8,339// CHECK-NEXT: "tokLen": 5340// CHECK-NEXT: },341// CHECK-NEXT: "range": {342// CHECK-NEXT: "begin": {343// CHECK-NEXT: "offset": 338,344// CHECK-NEXT: "col": 3,345// CHECK-NEXT: "tokLen": 4346// CHECK-NEXT: },347// CHECK-NEXT: "end": {348// CHECK-NEXT: "offset": 367,349// CHECK-NEXT: "col": 32,350// CHECK-NEXT: "tokLen": 8351// CHECK-NEXT: }352// CHECK-NEXT: },353// CHECK-NEXT: "name": "Test6",354// CHECK-NEXT: "mangledName": "_ZN1T5Test6Efi",355// CHECK-NEXT: "type": {356// CHECK-NEXT: "qualType": "void (float, int)"357// CHECK-NEXT: },358// CHECK-NEXT: "inner": [359// CHECK-NEXT: {360// CHECK-NEXT: "id": "0x{{.*}}",361// CHECK-NEXT: "kind": "ParmVarDecl",362// CHECK-NEXT: "loc": {363// CHECK-NEXT: "offset": 354,364// CHECK-NEXT: "col": 19,365// CHECK-NEXT: "tokLen": 1366// CHECK-NEXT: },367// CHECK-NEXT: "range": {368// CHECK-NEXT: "begin": {369// CHECK-NEXT: "offset": 349,370// CHECK-NEXT: "col": 14,371// CHECK-NEXT: "tokLen": 5372// CHECK-NEXT: },373// CHECK-NEXT: "end": {374// CHECK-NEXT: "offset": 349,375// CHECK-NEXT: "col": 14,376// CHECK-NEXT: "tokLen": 5377// CHECK-NEXT: }378// CHECK-NEXT: },379// CHECK-NEXT: "type": {380// CHECK-NEXT: "qualType": "float"381// CHECK-NEXT: }382// CHECK-NEXT: },383// CHECK-NEXT: {384// CHECK-NEXT: "id": "0x{{.*}}",385// CHECK-NEXT: "kind": "ParmVarDecl",386// CHECK-NEXT: "loc": {387// CHECK-NEXT: "offset": 360,388// CHECK-NEXT: "col": 25,389// CHECK-NEXT: "tokLen": 1390// CHECK-NEXT: },391// CHECK-NEXT: "range": {392// CHECK-NEXT: "begin": {393// CHECK-NEXT: "offset": 356,394// CHECK-NEXT: "col": 21,395// CHECK-NEXT: "tokLen": 3396// CHECK-NEXT: },397// CHECK-NEXT: "end": {398// CHECK-NEXT: "offset": 362,399// CHECK-NEXT: "col": 27,400// CHECK-NEXT: "tokLen": 3401// CHECK-NEXT: }402// CHECK-NEXT: },403// CHECK-NEXT: "type": {404// CHECK-NEXT: "qualType": "int"405// CHECK-NEXT: },406// CHECK-NEXT: "init": "c",407// CHECK-NEXT: "inner": [408// CHECK-NEXT: {409// CHECK-NEXT: "id": "0x{{.*}}",410// CHECK-NEXT: "kind": "IntegerLiteral",411// CHECK-NEXT: "range": {412// CHECK-NEXT: "begin": {413// CHECK-NEXT: "offset": 362,414// CHECK-NEXT: "col": 27,415// CHECK-NEXT: "tokLen": 3416// CHECK-NEXT: },417// CHECK-NEXT: "end": {418// CHECK-NEXT: "offset": 362,419// CHECK-NEXT: "col": 27,420// CHECK-NEXT: "tokLen": 3421// CHECK-NEXT: }422// CHECK-NEXT: },423// CHECK-NEXT: "type": {424// CHECK-NEXT: "qualType": "int"425// CHECK-NEXT: },426// CHECK-NEXT: "valueCategory": "prvalue",427// CHECK-NEXT: "value": "100"428// CHECK-NEXT: }429// CHECK-NEXT: ]430// CHECK-NEXT: },431// CHECK-NEXT: {432// CHECK-NEXT: "id": "0x{{.*}}",433// CHECK-NEXT: "kind": "OverrideAttr",434// CHECK-NEXT: "range": {435// CHECK-NEXT: "begin": {436// CHECK-NEXT: "offset": 367,437// CHECK-NEXT: "col": 32,438// CHECK-NEXT: "tokLen": 8439// CHECK-NEXT: },440// CHECK-NEXT: "end": {441// CHECK-NEXT: "offset": 367,442// CHECK-NEXT: "col": 32,443// CHECK-NEXT: "tokLen": 8444// CHECK-NEXT: }445// CHECK-NEXT: }446// CHECK-NEXT: }447// CHECK-NEXT: ]448// CHECK-NEXT: }449 450 451// CHECK-NOT: {{^}}Dumping452// CHECK: "kind": "CXXMethodDecl",453// CHECK-NEXT: "loc": {454// CHECK-NEXT: "offset": 399,455// CHECK-NEXT: "file": "{{.*}}",456// CHECK-NEXT: "line": 18,457// CHECK-NEXT: "col": 8,458// CHECK-NEXT: "tokLen": 5459// CHECK-NEXT: },460// CHECK-NEXT: "range": {461// CHECK-NEXT: "begin": {462// CHECK-NEXT: "offset": 394,463// CHECK-NEXT: "col": 3,464// CHECK-NEXT: "tokLen": 4465// CHECK-NEXT: },466// CHECK-NEXT: "end": {467// CHECK-NEXT: "offset": 405,468// CHECK-NEXT: "col": 14,469// CHECK-NEXT: "tokLen": 1470// CHECK-NEXT: }471// CHECK-NEXT: },472// CHECK-NEXT: "name": "Test1",473// CHECK-NEXT: "mangledName": "_ZN1U5Test1Ev",474// CHECK-NEXT: "type": {475// CHECK-NEXT: "qualType": "void ()"476// CHECK-NEXT: }477// CHECK-NEXT: }478 479 480// CHECK-NOT: {{^}}Dumping481// CHECK: "kind": "CXXMethodDecl",482// CHECK-NEXT: "loc": {483// CHECK-NEXT: "offset": 419,484// CHECK-NEXT: "file": "{{.*}}",485// CHECK-NEXT: "line": 20,486// CHECK-NEXT: "col": 9,487// CHECK-NEXT: "tokLen": 5488// CHECK-NEXT: },489// CHECK-NEXT: "range": {490// CHECK-NEXT: "begin": {491// CHECK-NEXT: "offset": 411,492// CHECK-NEXT: "col": 1,493// CHECK-NEXT: "tokLen": 4494// CHECK-NEXT: },495// CHECK-NEXT: "end": {496// CHECK-NEXT: "offset": 428,497// CHECK-NEXT: "col": 18,498// CHECK-NEXT: "tokLen": 1499// CHECK-NEXT: }500// CHECK-NEXT: },501// CHECK-NEXT: "parentDeclContextId": "0x{{.*}}",502// CHECK-NEXT: "previousDecl": "0x{{.*}}",503// CHECK-NEXT: "name": "Test1",504// CHECK-NEXT: "mangledName": "_ZN1U5Test1Ev",505// CHECK-NEXT: "type": {506// CHECK-NEXT: "qualType": "void ()"507// CHECK-NEXT: },508// CHECK-NEXT: "inner": [509// CHECK-NEXT: {510// CHECK-NEXT: "id": "0x{{.*}}",511// CHECK-NEXT: "kind": "CompoundStmt",512// CHECK-NEXT: "range": {513// CHECK-NEXT: "begin": {514// CHECK-NEXT: "offset": 427,515// CHECK-NEXT: "col": 17,516// CHECK-NEXT: "tokLen": 1517// CHECK-NEXT: },518// CHECK-NEXT: "end": {519// CHECK-NEXT: "offset": 428,520// CHECK-NEXT: "col": 18,521// CHECK-NEXT: "tokLen": 1522// CHECK-NEXT: }523// CHECK-NEXT: }524// CHECK-NEXT: }525// CHECK-NEXT: ]526// CHECK-NEXT: }527 528 529// CHECK-NOT: {{^}}Dumping530// CHECK: "kind": "FunctionDecl",531// CHECK-NEXT: "loc": {532// CHECK-NEXT: "offset": 446,533// CHECK-NEXT: "file": "{{.*}}",534// CHECK-NEXT: "line": 22,535// CHECK-NEXT: "col": 6,536// CHECK-NEXT: "tokLen": 5537// CHECK-NEXT: },538// CHECK-NEXT: "range": {539// CHECK-NEXT: "begin": {540// CHECK-NEXT: "offset": 441,541// CHECK-NEXT: "col": 1,542// CHECK-NEXT: "tokLen": 4543// CHECK-NEXT: },544// CHECK-NEXT: "end": {545// CHECK-NEXT: "offset": 452,546// CHECK-NEXT: "col": 12,547// CHECK-NEXT: "tokLen": 1548// CHECK-NEXT: }549// CHECK-NEXT: },550// CHECK-NEXT: "isUsed": true,551// CHECK-NEXT: "name": "Test1",552// CHECK-NEXT: "mangledName": "_Z5Test1v",553// CHECK-NEXT: "type": {554// CHECK-NEXT: "qualType": "void ()"555// CHECK-NEXT: }556// CHECK-NEXT: }557 558 559// CHECK-NOT: {{^}}Dumping560// CHECK: "kind": "FunctionDecl",561// CHECK-NEXT: "loc": {562// CHECK-NEXT: "offset": 460,563// CHECK-NEXT: "file": "{{.*}}",564// CHECK-NEXT: "line": 23,565// CHECK-NEXT: "col": 6,566// CHECK-NEXT: "tokLen": 5567// CHECK-NEXT: },568// CHECK-NEXT: "range": {569// CHECK-NEXT: "begin": {570// CHECK-NEXT: "offset": 455,571// CHECK-NEXT: "col": 1,572// CHECK-NEXT: "tokLen": 4573// CHECK-NEXT: },574// CHECK-NEXT: "end": {575// CHECK-NEXT: "offset": 470,576// CHECK-NEXT: "col": 16,577// CHECK-NEXT: "tokLen": 1578// CHECK-NEXT: }579// CHECK-NEXT: },580// CHECK-NEXT: "name": "Test2",581// CHECK-NEXT: "mangledName": "_Z5Test2v",582// CHECK-NEXT: "type": {583// CHECK-NEXT: "qualType": "void ()"584// CHECK-NEXT: }585// CHECK-NEXT: }586 587 588// CHECK-NOT: {{^}}Dumping589// CHECK: "kind": "FunctionDecl",590// CHECK-NEXT: "loc": {591// CHECK-NEXT: "offset": 478,592// CHECK-NEXT: "file": "{{.*}}",593// CHECK-NEXT: "line": 24,594// CHECK-NEXT: "col": 6,595// CHECK-NEXT: "tokLen": 5596// CHECK-NEXT: },597// CHECK-NEXT: "range": {598// CHECK-NEXT: "begin": {599// CHECK-NEXT: "offset": 473,600// CHECK-NEXT: "col": 1,601// CHECK-NEXT: "tokLen": 4602// CHECK-NEXT: },603// CHECK-NEXT: "end": {604// CHECK-NEXT: "offset": 496,605// CHECK-NEXT: "col": 24,606// CHECK-NEXT: "tokLen": 1607// CHECK-NEXT: }608// CHECK-NEXT: },609// CHECK-NEXT: "name": "Test3",610// CHECK-NEXT: "mangledName": "_Z5Test3ii",611// CHECK-NEXT: "type": {612// CHECK-NEXT: "qualType": "void (int, int)"613// CHECK-NEXT: },614// CHECK-NEXT: "inner": [615// CHECK-NEXT: {616// CHECK-NEXT: "id": "0x{{.*}}",617// CHECK-NEXT: "kind": "ParmVarDecl",618// CHECK-NEXT: "loc": {619// CHECK-NEXT: "offset": 488,620// CHECK-NEXT: "col": 16,621// CHECK-NEXT: "tokLen": 1622// CHECK-NEXT: },623// CHECK-NEXT: "range": {624// CHECK-NEXT: "begin": {625// CHECK-NEXT: "offset": 484,626// CHECK-NEXT: "col": 12,627// CHECK-NEXT: "tokLen": 3628// CHECK-NEXT: },629// CHECK-NEXT: "end": {630// CHECK-NEXT: "offset": 488,631// CHECK-NEXT: "col": 16,632// CHECK-NEXT: "tokLen": 1633// CHECK-NEXT: }634// CHECK-NEXT: },635// CHECK-NEXT: "name": "a",636// CHECK-NEXT: "type": {637// CHECK-NEXT: "qualType": "int"638// CHECK-NEXT: }639// CHECK-NEXT: },640// CHECK-NEXT: {641// CHECK-NEXT: "id": "0x{{.*}}",642// CHECK-NEXT: "kind": "ParmVarDecl",643// CHECK-NEXT: "loc": {644// CHECK-NEXT: "offset": 495,645// CHECK-NEXT: "col": 23,646// CHECK-NEXT: "tokLen": 1647// CHECK-NEXT: },648// CHECK-NEXT: "range": {649// CHECK-NEXT: "begin": {650// CHECK-NEXT: "offset": 491,651// CHECK-NEXT: "col": 19,652// CHECK-NEXT: "tokLen": 3653// CHECK-NEXT: },654// CHECK-NEXT: "end": {655// CHECK-NEXT: "offset": 495,656// CHECK-NEXT: "col": 23,657// CHECK-NEXT: "tokLen": 1658// CHECK-NEXT: }659// CHECK-NEXT: },660// CHECK-NEXT: "name": "b",661// CHECK-NEXT: "type": {662// CHECK-NEXT: "qualType": "int"663// CHECK-NEXT: }664// CHECK-NEXT: }665// CHECK-NEXT: ]666// CHECK-NEXT: }667 668 669// CHECK-NOT: {{^}}Dumping670// CHECK: "kind": "FunctionDecl",671// CHECK-NEXT: "loc": {672// CHECK-NEXT: "offset": 504,673// CHECK-NEXT: "file": "{{.*}}",674// CHECK-NEXT: "line": 25,675// CHECK-NEXT: "col": 6,676// CHECK-NEXT: "tokLen": 5677// CHECK-NEXT: },678// CHECK-NEXT: "range": {679// CHECK-NEXT: "begin": {680// CHECK-NEXT: "offset": 499,681// CHECK-NEXT: "col": 1,682// CHECK-NEXT: "tokLen": 4683// CHECK-NEXT: },684// CHECK-NEXT: "end": {685// CHECK-NEXT: "offset": 527,686// CHECK-NEXT: "col": 29,687// CHECK-NEXT: "tokLen": 1688// CHECK-NEXT: }689// CHECK-NEXT: },690// CHECK-NEXT: "name": "Test4",691// CHECK-NEXT: "mangledName": "_Z5Test4ii",692// CHECK-NEXT: "type": {693// CHECK-NEXT: "qualType": "void (int, int)"694// CHECK-NEXT: },695// CHECK-NEXT: "inner": [696// CHECK-NEXT: {697// CHECK-NEXT: "id": "0x{{.*}}",698// CHECK-NEXT: "kind": "ParmVarDecl",699// CHECK-NEXT: "loc": {700// CHECK-NEXT: "offset": 514,701// CHECK-NEXT: "col": 16,702// CHECK-NEXT: "tokLen": 1703// CHECK-NEXT: },704// CHECK-NEXT: "range": {705// CHECK-NEXT: "begin": {706// CHECK-NEXT: "offset": 510,707// CHECK-NEXT: "col": 12,708// CHECK-NEXT: "tokLen": 3709// CHECK-NEXT: },710// CHECK-NEXT: "end": {711// CHECK-NEXT: "offset": 514,712// CHECK-NEXT: "col": 16,713// CHECK-NEXT: "tokLen": 1714// CHECK-NEXT: }715// CHECK-NEXT: },716// CHECK-NEXT: "name": "a",717// CHECK-NEXT: "type": {718// CHECK-NEXT: "qualType": "int"719// CHECK-NEXT: }720// CHECK-NEXT: },721// CHECK-NEXT: {722// CHECK-NEXT: "id": "0x{{.*}}",723// CHECK-NEXT: "kind": "ParmVarDecl",724// CHECK-NEXT: "loc": {725// CHECK-NEXT: "offset": 521,726// CHECK-NEXT: "col": 23,727// CHECK-NEXT: "tokLen": 1728// CHECK-NEXT: },729// CHECK-NEXT: "range": {730// CHECK-NEXT: "begin": {731// CHECK-NEXT: "offset": 517,732// CHECK-NEXT: "col": 19,733// CHECK-NEXT: "tokLen": 3734// CHECK-NEXT: },735// CHECK-NEXT: "end": {736// CHECK-NEXT: "offset": 525,737// CHECK-NEXT: "col": 27,738// CHECK-NEXT: "tokLen": 2739// CHECK-NEXT: }740// CHECK-NEXT: },741// CHECK-NEXT: "name": "b",742// CHECK-NEXT: "type": {743// CHECK-NEXT: "qualType": "int"744// CHECK-NEXT: },745// CHECK-NEXT: "init": "c",746// CHECK-NEXT: "inner": [747// CHECK-NEXT: {748// CHECK-NEXT: "id": "0x{{.*}}",749// CHECK-NEXT: "kind": "IntegerLiteral",750// CHECK-NEXT: "range": {751// CHECK-NEXT: "begin": {752// CHECK-NEXT: "offset": 525,753// CHECK-NEXT: "col": 27,754// CHECK-NEXT: "tokLen": 2755// CHECK-NEXT: },756// CHECK-NEXT: "end": {757// CHECK-NEXT: "offset": 525,758// CHECK-NEXT: "col": 27,759// CHECK-NEXT: "tokLen": 2760// CHECK-NEXT: }761// CHECK-NEXT: },762// CHECK-NEXT: "type": {763// CHECK-NEXT: "qualType": "int"764// CHECK-NEXT: },765// CHECK-NEXT: "valueCategory": "prvalue",766// CHECK-NEXT: "value": "12"767// CHECK-NEXT: }768// CHECK-NEXT: ]769// CHECK-NEXT: }770// CHECK-NEXT: ]771// CHECK-NEXT: }772 773 774// CHECK-NOT: {{^}}Dumping775// CHECK: "kind": "FunctionDecl",776// CHECK-NEXT: "loc": {777// CHECK-NEXT: "offset": 545,778// CHECK-NEXT: "file": "{{.*}}",779// CHECK-NEXT: "line": 26,780// CHECK-NEXT: "col": 16,781// CHECK-NEXT: "tokLen": 5782// CHECK-NEXT: },783// CHECK-NEXT: "range": {784// CHECK-NEXT: "begin": {785// CHECK-NEXT: "offset": 530,786// CHECK-NEXT: "col": 1,787// CHECK-NEXT: "tokLen": 9788// CHECK-NEXT: },789// CHECK-NEXT: "end": {790// CHECK-NEXT: "offset": 555,791// CHECK-NEXT: "col": 26,792// CHECK-NEXT: "tokLen": 1793// CHECK-NEXT: }794// CHECK-NEXT: },795// CHECK-NEXT: "name": "Test5",796// CHECK-NEXT: "mangledName": "_Z5Test5v",797// CHECK-NEXT: "type": {798// CHECK-NEXT: "qualType": "void ()"799// CHECK-NEXT: },800// CHECK-NEXT: "constexpr": true801// CHECK-NEXT: }802 803 804// CHECK-NOT: {{^}}Dumping805// CHECK: "kind": "FunctionDecl",806// CHECK-NEXT: "loc": {807// CHECK-NEXT: "offset": 570,808// CHECK-NEXT: "file": "{{.*}}",809// CHECK-NEXT: "line": 27,810// CHECK-NEXT: "col": 13,811// CHECK-NEXT: "tokLen": 5812// CHECK-NEXT: },813// CHECK-NEXT: "range": {814// CHECK-NEXT: "begin": {815// CHECK-NEXT: "offset": 558,816// CHECK-NEXT: "col": 1,817// CHECK-NEXT: "tokLen": 6818// CHECK-NEXT: },819// CHECK-NEXT: "end": {820// CHECK-NEXT: "offset": 580,821// CHECK-NEXT: "col": 23,822// CHECK-NEXT: "tokLen": 1823// CHECK-NEXT: }824// CHECK-NEXT: },825// CHECK-NEXT: "name": "Test6",826// CHECK-NEXT: "mangledName": "_ZL5Test6v",827// CHECK-NEXT: "type": {828// CHECK-NEXT: "qualType": "void ()"829// CHECK-NEXT: },830// CHECK-NEXT: "storageClass": "static"831// CHECK-NEXT: }832 833 834// CHECK-NOT: {{^}}Dumping835// CHECK: "kind": "FunctionDecl",836// CHECK-NEXT: "loc": {837// CHECK-NEXT: "offset": 595,838// CHECK-NEXT: "file": "{{.*}}",839// CHECK-NEXT: "line": 28,840// CHECK-NEXT: "col": 13,841// CHECK-NEXT: "tokLen": 5842// CHECK-NEXT: },843// CHECK-NEXT: "range": {844// CHECK-NEXT: "begin": {845// CHECK-NEXT: "offset": 583,846// CHECK-NEXT: "col": 1,847// CHECK-NEXT: "tokLen": 6848// CHECK-NEXT: },849// CHECK-NEXT: "end": {850// CHECK-NEXT: "offset": 605,851// CHECK-NEXT: "col": 23,852// CHECK-NEXT: "tokLen": 1853// CHECK-NEXT: }854// CHECK-NEXT: },855// CHECK-NEXT: "name": "Test7",856// CHECK-NEXT: "mangledName": "_Z5Test7v",857// CHECK-NEXT: "type": {858// CHECK-NEXT: "qualType": "void ()"859// CHECK-NEXT: },860// CHECK-NEXT: "storageClass": "extern"861// CHECK-NEXT: }862 863 864// CHECK-NOT: {{^}}Dumping865// CHECK: "kind": "FunctionDecl",866// CHECK-NEXT: "loc": {867// CHECK-NEXT: "offset": 620,868// CHECK-NEXT: "file": "{{.*}}",869// CHECK-NEXT: "line": 29,870// CHECK-NEXT: "col": 13,871// CHECK-NEXT: "tokLen": 5872// CHECK-NEXT: },873// CHECK-NEXT: "range": {874// CHECK-NEXT: "begin": {875// CHECK-NEXT: "offset": 608,876// CHECK-NEXT: "col": 1,877// CHECK-NEXT: "tokLen": 6878// CHECK-NEXT: },879// CHECK-NEXT: "end": {880// CHECK-NEXT: "offset": 630,881// CHECK-NEXT: "col": 23,882// CHECK-NEXT: "tokLen": 1883// CHECK-NEXT: }884// CHECK-NEXT: },885// CHECK-NEXT: "name": "Test8",886// CHECK-NEXT: "mangledName": "_Z5Test8v",887// CHECK-NEXT: "type": {888// CHECK-NEXT: "qualType": "void ()"889// CHECK-NEXT: },890// CHECK-NEXT: "inline": true891// CHECK-NEXT: }892 893 894// CHECK-NOT: {{^}}Dumping895// CHECK: "kind": "FunctionDecl",896// CHECK-NEXT: "loc": {897// CHECK-NEXT: "offset": 638,898// CHECK-NEXT: "file": "{{.*}}",899// CHECK-NEXT: "line": 30,900// CHECK-NEXT: "col": 6,901// CHECK-NEXT: "tokLen": 5902// CHECK-NEXT: },903// CHECK-NEXT: "range": {904// CHECK-NEXT: "begin": {905// CHECK-NEXT: "offset": 633,906// CHECK-NEXT: "col": 1,907// CHECK-NEXT: "tokLen": 4908// CHECK-NEXT: },909// CHECK-NEXT: "end": {910// CHECK-NEXT: "offset": 650,911// CHECK-NEXT: "col": 18,912// CHECK-NEXT: "tokLen": 8913// CHECK-NEXT: }914// CHECK-NEXT: },915// CHECK-NEXT: "name": "Test9",916// CHECK-NEXT: "mangledName": "_Z5Test9v",917// CHECK-NEXT: "type": {918// CHECK-NEXT: "qualType": "void () noexcept"919// CHECK-NEXT: }920// CHECK-NEXT: }921 922 923// CHECK-NOT: {{^}}Dumping924// CHECK: "kind": "FunctionDecl",925// CHECK-NEXT: "loc": {926// CHECK-NEXT: "offset": 665,927// CHECK-NEXT: "file": "{{.*}}",928// CHECK-NEXT: "line": 31,929// CHECK-NEXT: "col": 6,930// CHECK-NEXT: "tokLen": 6931// CHECK-NEXT: },932// CHECK-NEXT: "range": {933// CHECK-NEXT: "begin": {934// CHECK-NEXT: "offset": 660,935// CHECK-NEXT: "col": 1,936// CHECK-NEXT: "tokLen": 4937// CHECK-NEXT: },938// CHECK-NEXT: "end": {939// CHECK-NEXT: "offset": 692,940// CHECK-NEXT: "col": 33,941// CHECK-NEXT: "tokLen": 1942// CHECK-NEXT: }943// CHECK-NEXT: },944// CHECK-NEXT: "name": "Test10",945// CHECK-NEXT: "mangledName": "_Z6Test10v",946// CHECK-NEXT: "type": {947// CHECK-NEXT: "qualType": "void () noexcept(false)"948// CHECK-NEXT: }949// CHECK-NEXT: }950 951 952// CHECK-NOT: {{^}}Dumping953// CHECK: "kind": "FunctionDecl",954// CHECK-NEXT: "loc": {955// CHECK-NEXT: "offset": 700,956// CHECK-NEXT: "file": "{{.*}}",957// CHECK-NEXT: "line": 32,958// CHECK-NEXT: "col": 6,959// CHECK-NEXT: "tokLen": 6960// CHECK-NEXT: },961// CHECK-NEXT: "range": {962// CHECK-NEXT: "begin": {963// CHECK-NEXT: "offset": 695,964// CHECK-NEXT: "col": 1,965// CHECK-NEXT: "tokLen": 4966// CHECK-NEXT: },967// CHECK-NEXT: "end": {968// CHECK-NEXT: "offset": 723,969// CHECK-NEXT: "col": 29,970// CHECK-NEXT: "tokLen": 1971// CHECK-NEXT: }972// CHECK-NEXT: },973// CHECK-NEXT: "name": "Test11",974// CHECK-NEXT: "mangledName": "_Z6Test11v",975// CHECK-NEXT: "type": {976// CHECK-NEXT: "qualType": "void () noexcept(1)"977// CHECK-NEXT: }978// CHECK-NEXT: }979 980 981// CHECK-NOT: {{^}}Dumping982// CHECK: "kind": "FunctionTemplateDecl",983// CHECK-NEXT: "loc": {984// CHECK-NEXT: "offset": 751,985// CHECK-NEXT: "file": "{{.*}}",986// CHECK-NEXT: "line": 35,987// CHECK-NEXT: "col": 3,988// CHECK-NEXT: "tokLen": 6989// CHECK-NEXT: },990// CHECK-NEXT: "range": {991// CHECK-NEXT: "begin": {992// CHECK-NEXT: "offset": 727,993// CHECK-NEXT: "line": 34,994// CHECK-NEXT: "col": 1,995// CHECK-NEXT: "tokLen": 8996// CHECK-NEXT: },997// CHECK-NEXT: "end": {998// CHECK-NEXT: "offset": 760,999// CHECK-NEXT: "line": 35,1000// CHECK-NEXT: "col": 12,1001// CHECK-NEXT: "tokLen": 11002// CHECK-NEXT: }1003// CHECK-NEXT: },1004// CHECK-NEXT: "name": "Test12",1005// CHECK-NEXT: "inner": [1006// CHECK-NEXT: {1007// CHECK-NEXT: "id": "0x{{.*}}",1008// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1009// CHECK-NEXT: "loc": {1010// CHECK-NEXT: "offset": 746,1011// CHECK-NEXT: "line": 34,1012// CHECK-NEXT: "col": 20,1013// CHECK-NEXT: "tokLen": 11014// CHECK-NEXT: },1015// CHECK-NEXT: "range": {1016// CHECK-NEXT: "begin": {1017// CHECK-NEXT: "offset": 737,1018// CHECK-NEXT: "col": 11,1019// CHECK-NEXT: "tokLen": 81020// CHECK-NEXT: },1021// CHECK-NEXT: "end": {1022// CHECK-NEXT: "offset": 746,1023// CHECK-NEXT: "col": 20,1024// CHECK-NEXT: "tokLen": 11025// CHECK-NEXT: }1026// CHECK-NEXT: },1027// CHECK-NEXT: "isReferenced": true,1028// CHECK-NEXT: "name": "T",1029// CHECK-NEXT: "tagUsed": "typename",1030// CHECK-NEXT: "depth": 0,1031// CHECK-NEXT: "index": 01032// CHECK-NEXT: },1033// CHECK-NEXT: {1034// CHECK-NEXT: "id": "0x{{.*}}",1035// CHECK-NEXT: "kind": "FunctionDecl",1036// CHECK-NEXT: "loc": {1037// CHECK-NEXT: "offset": 751,1038// CHECK-NEXT: "line": 35,1039// CHECK-NEXT: "col": 3,1040// CHECK-NEXT: "tokLen": 61041// CHECK-NEXT: },1042// CHECK-NEXT: "range": {1043// CHECK-NEXT: "begin": {1044// CHECK-NEXT: "offset": 749,1045// CHECK-NEXT: "col": 1,1046// CHECK-NEXT: "tokLen": 11047// CHECK-NEXT: },1048// CHECK-NEXT: "end": {1049// CHECK-NEXT: "offset": 760,1050// CHECK-NEXT: "col": 12,1051// CHECK-NEXT: "tokLen": 11052// CHECK-NEXT: }1053// CHECK-NEXT: },1054// CHECK-NEXT: "name": "Test12",1055// CHECK-NEXT: "type": {1056// CHECK-NEXT: "qualType": "T (T &)"1057// CHECK-NEXT: },1058// CHECK-NEXT: "inner": [1059// CHECK-NEXT: {1060// CHECK-NEXT: "id": "0x{{.*}}",1061// CHECK-NEXT: "kind": "ParmVarDecl",1062// CHECK-NEXT: "loc": {1063// CHECK-NEXT: "offset": 760,1064// CHECK-NEXT: "col": 12,1065// CHECK-NEXT: "tokLen": 11066// CHECK-NEXT: },1067// CHECK-NEXT: "range": {1068// CHECK-NEXT: "begin": {1069// CHECK-NEXT: "offset": 758,1070// CHECK-NEXT: "col": 10,1071// CHECK-NEXT: "tokLen": 11072// CHECK-NEXT: },1073// CHECK-NEXT: "end": {1074// CHECK-NEXT: "offset": 759,1075// CHECK-NEXT: "col": 11,1076// CHECK-NEXT: "tokLen": 11077// CHECK-NEXT: }1078// CHECK-NEXT: },1079// CHECK-NEXT: "type": {1080// CHECK-NEXT: "qualType": "T &"1081// CHECK-NEXT: }1082// CHECK-NEXT: }1083// CHECK-NEXT: ]1084// CHECK-NEXT: }1085// CHECK-NEXT: ]1086// CHECK-NEXT: }1087 1088 1089// CHECK-NOT: {{^}}Dumping1090// CHECK: "kind": "FunctionDecl",1091// CHECK-NEXT: "loc": {1092// CHECK-NEXT: "offset": 769,1093// CHECK-NEXT: "file": "{{.*}}",1094// CHECK-NEXT: "line": 37,1095// CHECK-NEXT: "col": 6,1096// CHECK-NEXT: "tokLen": 61097// CHECK-NEXT: },1098// CHECK-NEXT: "range": {1099// CHECK-NEXT: "begin": {1100// CHECK-NEXT: "offset": 764,1101// CHECK-NEXT: "col": 1,1102// CHECK-NEXT: "tokLen": 41103// CHECK-NEXT: },1104// CHECK-NEXT: "end": {1105// CHECK-NEXT: "offset": 782,1106// CHECK-NEXT: "col": 19,1107// CHECK-NEXT: "tokLen": 11108// CHECK-NEXT: }1109// CHECK-NEXT: },1110// CHECK-NEXT: "name": "Test13",1111// CHECK-NEXT: "mangledName": "_Z6Test13i",1112// CHECK-NEXT: "type": {1113// CHECK-NEXT: "qualType": "void (int)"1114// CHECK-NEXT: },1115// CHECK-NEXT: "inner": [1116// CHECK-NEXT: {1117// CHECK-NEXT: "id": "0x{{.*}}",1118// CHECK-NEXT: "kind": "ParmVarDecl",1119// CHECK-NEXT: "loc": {1120// CHECK-NEXT: "offset": 779,1121// CHECK-NEXT: "col": 16,1122// CHECK-NEXT: "tokLen": 11123// CHECK-NEXT: },1124// CHECK-NEXT: "range": {1125// CHECK-NEXT: "begin": {1126// CHECK-NEXT: "offset": 776,1127// CHECK-NEXT: "col": 13,1128// CHECK-NEXT: "tokLen": 31129// CHECK-NEXT: },1130// CHECK-NEXT: "end": {1131// CHECK-NEXT: "offset": 776,1132// CHECK-NEXT: "col": 13,1133// CHECK-NEXT: "tokLen": 31134// CHECK-NEXT: }1135// CHECK-NEXT: },1136// CHECK-NEXT: "type": {1137// CHECK-NEXT: "qualType": "int"1138// CHECK-NEXT: }1139// CHECK-NEXT: },1140// CHECK-NEXT: {1141// CHECK-NEXT: "id": "0x{{.*}}",1142// CHECK-NEXT: "kind": "CompoundStmt",1143// CHECK-NEXT: "range": {1144// CHECK-NEXT: "begin": {1145// CHECK-NEXT: "offset": 781,1146// CHECK-NEXT: "col": 18,1147// CHECK-NEXT: "tokLen": 11148// CHECK-NEXT: },1149// CHECK-NEXT: "end": {1150// CHECK-NEXT: "offset": 782,1151// CHECK-NEXT: "col": 19,1152// CHECK-NEXT: "tokLen": 11153// CHECK-NEXT: }1154// CHECK-NEXT: }1155// CHECK-NEXT: }1156// CHECK-NEXT: ]1157// CHECK-NEXT: }1158 1159 1160// CHECK-NOT: {{^}}Dumping1161// CHECK: "kind": "FunctionDecl",1162// CHECK-NEXT: "loc": {1163// CHECK-NEXT: "offset": 789,1164// CHECK-NEXT: "file": "{{.*}}",1165// CHECK-NEXT: "line": 38,1166// CHECK-NEXT: "col": 6,1167// CHECK-NEXT: "tokLen": 61168// CHECK-NEXT: },1169// CHECK-NEXT: "range": {1170// CHECK-NEXT: "begin": {1171// CHECK-NEXT: "offset": 784,1172// CHECK-NEXT: "col": 1,1173// CHECK-NEXT: "tokLen": 41174// CHECK-NEXT: },1175// CHECK-NEXT: "end": {1176// CHECK-NEXT: "offset": 807,1177// CHECK-NEXT: "col": 24,1178// CHECK-NEXT: "tokLen": 11179// CHECK-NEXT: }1180// CHECK-NEXT: },1181// CHECK-NEXT: "name": "Test14",1182// CHECK-NEXT: "mangledName": "_Z6Test14iz",1183// CHECK-NEXT: "type": {1184// CHECK-NEXT: "qualType": "void (int, ...)"1185// CHECK-NEXT: },1186// CHECK-NEXT: "variadic": true,1187// CHECK-NEXT: "inner": [1188// CHECK-NEXT: {1189// CHECK-NEXT: "id": "0x{{.*}}",1190// CHECK-NEXT: "kind": "ParmVarDecl",1191// CHECK-NEXT: "loc": {1192// CHECK-NEXT: "offset": 799,1193// CHECK-NEXT: "col": 16,1194// CHECK-NEXT: "tokLen": 11195// CHECK-NEXT: },1196// CHECK-NEXT: "range": {1197// CHECK-NEXT: "begin": {1198// CHECK-NEXT: "offset": 796,1199// CHECK-NEXT: "col": 13,1200// CHECK-NEXT: "tokLen": 31201// CHECK-NEXT: },1202// CHECK-NEXT: "end": {1203// CHECK-NEXT: "offset": 796,1204// CHECK-NEXT: "col": 13,1205// CHECK-NEXT: "tokLen": 31206// CHECK-NEXT: }1207// CHECK-NEXT: },1208// CHECK-NEXT: "type": {1209// CHECK-NEXT: "qualType": "int"1210// CHECK-NEXT: }1211// CHECK-NEXT: },1212// CHECK-NEXT: {1213// CHECK-NEXT: "id": "0x{{.*}}",1214// CHECK-NEXT: "kind": "CompoundStmt",1215// CHECK-NEXT: "range": {1216// CHECK-NEXT: "begin": {1217// CHECK-NEXT: "offset": 806,1218// CHECK-NEXT: "col": 23,1219// CHECK-NEXT: "tokLen": 11220// CHECK-NEXT: },1221// CHECK-NEXT: "end": {1222// CHECK-NEXT: "offset": 807,1223// CHECK-NEXT: "col": 24,1224// CHECK-NEXT: "tokLen": 11225// CHECK-NEXT: }1226// CHECK-NEXT: }1227// CHECK-NEXT: }1228// CHECK-NEXT: ]1229// CHECK-NEXT: }1230 1231 1232// CHECK-NOT: {{^}}Dumping1233// CHECK: "kind": "ClassTemplateDecl",1234// CHECK-NEXT: "loc": {1235// CHECK-NEXT: "offset": 905,1236// CHECK-NEXT: "file": "{{.*}}",1237// CHECK-NEXT: "line": 45,1238// CHECK-NEXT: "col": 8,1239// CHECK-NEXT: "tokLen": 111240// CHECK-NEXT: },1241// CHECK-NEXT: "range": {1242// CHECK-NEXT: "begin": {1243// CHECK-NEXT: "offset": 872,1244// CHECK-NEXT: "line": 44,1245// CHECK-NEXT: "col": 1,1246// CHECK-NEXT: "tokLen": 81247// CHECK-NEXT: },1248// CHECK-NEXT: "end": {1249// CHECK-NEXT: "offset": 937,1250// CHECK-NEXT: "line": 47,1251// CHECK-NEXT: "col": 1,1252// CHECK-NEXT: "tokLen": 11253// CHECK-NEXT: }1254// CHECK-NEXT: },1255// CHECK-NEXT: "name": "TestFriends",1256// CHECK-NEXT: "inner": [1257// CHECK-NEXT: {1258// CHECK-NEXT: "id": "0x{{.*}}",1259// CHECK-NEXT: "kind": "TemplateTypeParmDecl",1260// CHECK-NEXT: "loc": {1261// CHECK-NEXT: "offset": 894,1262// CHECK-NEXT: "line": 44,1263// CHECK-NEXT: "col": 23,1264// CHECK-NEXT: "tokLen": 21265// CHECK-NEXT: },1266// CHECK-NEXT: "range": {1267// CHECK-NEXT: "begin": {1268// CHECK-NEXT: "offset": 882,1269// CHECK-NEXT: "col": 11,1270// CHECK-NEXT: "tokLen": 81271// CHECK-NEXT: },1272// CHECK-NEXT: "end": {1273// CHECK-NEXT: "offset": 894,1274// CHECK-NEXT: "col": 23,1275// CHECK-NEXT: "tokLen": 21276// CHECK-NEXT: }1277// CHECK-NEXT: },1278// CHECK-NEXT: "isReferenced": true,1279// CHECK-NEXT: "name": "Ts",1280// CHECK-NEXT: "tagUsed": "typename",1281// CHECK-NEXT: "depth": 0,1282// CHECK-NEXT: "index": 0,1283// CHECK-NEXT: "isParameterPack": true1284// CHECK-NEXT: },1285// CHECK-NEXT: {1286// CHECK-NEXT: "id": "0x{{.*}}",1287// CHECK-NEXT: "kind": "CXXRecordDecl",1288// CHECK-NEXT: "loc": {1289// CHECK-NEXT: "offset": 905,1290// CHECK-NEXT: "line": 45,1291// CHECK-NEXT: "col": 8,1292// CHECK-NEXT: "tokLen": 111293// CHECK-NEXT: },1294// CHECK-NEXT: "range": {1295// CHECK-NEXT: "begin": {1296// CHECK-NEXT: "offset": 898,1297// CHECK-NEXT: "col": 1,1298// CHECK-NEXT: "tokLen": 61299// CHECK-NEXT: },1300// CHECK-NEXT: "end": {1301// CHECK-NEXT: "offset": 937,1302// CHECK-NEXT: "line": 47,1303// CHECK-NEXT: "col": 1,1304// CHECK-NEXT: "tokLen": 11305// CHECK-NEXT: }1306// CHECK-NEXT: },1307// CHECK-NEXT: "name": "TestFriends",1308// CHECK-NEXT: "tagUsed": "struct",1309// CHECK-NEXT: "completeDefinition": true,1310// CHECK-NEXT: "definitionData": {1311// CHECK-NEXT: "canConstDefaultInit": true,1312// CHECK-NEXT: "copyAssign": {1313// CHECK-NEXT: "hasConstParam": true,1314// CHECK-NEXT: "implicitHasConstParam": true,1315// CHECK-NEXT: "needsImplicit": true,1316// CHECK-NEXT: "simple": true,1317// CHECK-NEXT: "trivial": true1318// CHECK-NEXT: },1319// CHECK-NEXT: "copyCtor": {1320// CHECK-NEXT: "hasConstParam": true,1321// CHECK-NEXT: "implicitHasConstParam": true,1322// CHECK-NEXT: "needsImplicit": true,1323// CHECK-NEXT: "simple": true,1324// CHECK-NEXT: "trivial": true1325// CHECK-NEXT: },1326// CHECK-NEXT: "defaultCtor": {1327// CHECK-NEXT: "defaultedIsConstexpr": true,1328// CHECK-NEXT: "exists": true,1329// CHECK-NEXT: "isConstexpr": true,1330// CHECK-NEXT: "needsImplicit": true,1331// CHECK-NEXT: "trivial": true1332// CHECK-NEXT: },1333// CHECK-NEXT: "dtor": {1334// CHECK-NEXT: "irrelevant": true,1335// CHECK-NEXT: "needsImplicit": true,1336// CHECK-NEXT: "simple": true,1337// CHECK-NEXT: "trivial": true1338// CHECK-NEXT: },1339// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true,1340// CHECK-NEXT: "isAggregate": true,1341// CHECK-NEXT: "isEmpty": true,1342// CHECK-NEXT: "isLiteral": true,1343// CHECK-NEXT: "isPOD": true,1344// CHECK-NEXT: "isStandardLayout": true,1345// CHECK-NEXT: "isTrivial": true,1346// CHECK-NEXT: "isTriviallyCopyable": true,1347// CHECK-NEXT: "moveAssign": {1348// CHECK-NEXT: "exists": true,1349// CHECK-NEXT: "needsImplicit": true,1350// CHECK-NEXT: "simple": true,1351// CHECK-NEXT: "trivial": true1352// CHECK-NEXT: },1353// CHECK-NEXT: "moveCtor": {1354// CHECK-NEXT: "exists": true,1355// CHECK-NEXT: "needsImplicit": true,1356// CHECK-NEXT: "simple": true,1357// CHECK-NEXT: "trivial": true1358// CHECK-NEXT: }1359// CHECK-NEXT: },1360// CHECK-NEXT: "inner": [1361// CHECK-NEXT: {1362// CHECK-NEXT: "id": "0x{{.*}}",1363// CHECK-NEXT: "kind": "CXXRecordDecl",1364// CHECK-NEXT: "loc": {1365// CHECK-NEXT: "offset": 905,1366// CHECK-NEXT: "line": 45,1367// CHECK-NEXT: "col": 8,1368// CHECK-NEXT: "tokLen": 111369// CHECK-NEXT: },1370// CHECK-NEXT: "range": {1371// CHECK-NEXT: "begin": {1372// CHECK-NEXT: "offset": 898,1373// CHECK-NEXT: "col": 1,1374// CHECK-NEXT: "tokLen": 61375// CHECK-NEXT: },1376// CHECK-NEXT: "end": {1377// CHECK-NEXT: "offset": 905,1378// CHECK-NEXT: "col": 8,1379// CHECK-NEXT: "tokLen": 111380// CHECK-NEXT: }1381// CHECK-NEXT: },1382// CHECK-NEXT: "isImplicit": true,1383// CHECK-NEXT: "name": "TestFriends",1384// CHECK-NEXT: "tagUsed": "struct"1385// CHECK-NEXT: },1386// CHECK-NEXT: {1387// CHECK-NEXT: "id": "0x{{.*}}",1388// CHECK-NEXT: "kind": "FriendDecl",1389// CHECK-NEXT: "loc": {1390// CHECK-NEXT: "offset": 930,1391// CHECK-NEXT: "line": 46,1392// CHECK-NEXT: "col": 12,1393// CHECK-NEXT: "tokLen": 21394// CHECK-NEXT: },1395// CHECK-NEXT: "range": {1396// CHECK-NEXT: "begin": {1397// CHECK-NEXT: "offset": 923,1398// CHECK-NEXT: "col": 5,1399// CHECK-NEXT: "tokLen": 61400// CHECK-NEXT: },1401// CHECK-NEXT: "end": {1402// CHECK-NEXT: "offset": 932,1403// CHECK-NEXT: "col": 14,1404// CHECK-NEXT: "tokLen": 31405// CHECK-NEXT: }1406// CHECK-NEXT: },1407// CHECK-NEXT: "type": {1408// CHECK-NEXT: "qualType": "Ts"1409// CHECK-NEXT: },1410// CHECK-NEXT: "isPackExpansion": true1411// CHECK-NEXT: }1412// CHECK-NEXT: ]1413// CHECK-NEXT: }1414// CHECK-NEXT: ]1415// CHECK-NEXT: }1416