1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json -ast-dump-filter Test %s | FileCheck %s 2 3 struct 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 13 struct T : S { // T is not referenced, but S is 14 void Test6(float, int = 100) override; 15 }; 16 17 struct U { 18 void Test1(); 19 }; 20 void U::Test1() {} // parent 21 22 void Test1(); 23 void Test2(void); 24 void Test3(int a, int b); 25 void Test4(int a, int b = 12); 26 constexpr void Test5(void); 27 static void Test6(void); 28 extern void Test7(void); 29 inline void Test8(void); 30 void Test9(void) noexcept; 31 void Test10(void) noexcept(false); 32 void Test11(void) noexcept(1); 33 34 template <typename T> 35 T Test12(T&); 36 37 void Test13(int) {} 38 void Test14(int, ...) {} 39 40 int main() { 41 Test1(); // Causes this to be marked 'used' 42 } 43 44 template <typename ...Ts> 45 struct TestFriends { 46 friend Ts...; 47 }; 48 49 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py 50 51 52 // CHECK-NOT: {{^}}Dumping 53 // 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": 5 60 // CHECK-NEXT: }, 61 // CHECK-NEXT: "range": { 62 // CHECK-NEXT: "begin": { 63 // CHECK-NEXT: "offset": 119, 64 // CHECK-NEXT: "col": 3, 65 // CHECK-NEXT: "tokLen": 4 66 // CHECK-NEXT: }, 67 // CHECK-NEXT: "end": { 68 // CHECK-NEXT: "offset": 130, 69 // CHECK-NEXT: "col": 14, 70 // CHECK-NEXT: "tokLen": 1 71 // 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: {{^}}Dumping 82 // 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": 5 89 // CHECK-NEXT: }, 90 // CHECK-NEXT: "range": { 91 // CHECK-NEXT: "begin": { 92 // CHECK-NEXT: "offset": 135, 93 // CHECK-NEXT: "col": 3, 94 // CHECK-NEXT: "tokLen": 4 95 // CHECK-NEXT: }, 96 // CHECK-NEXT: "end": { 97 // CHECK-NEXT: "offset": 148, 98 // CHECK-NEXT: "col": 16, 99 // CHECK-NEXT: "tokLen": 5 100 // 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: {{^}}Dumping 111 // 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": 5 118 // CHECK-NEXT: }, 119 // CHECK-NEXT: "range": { 120 // CHECK-NEXT: "begin": { 121 // CHECK-NEXT: "offset": 157, 122 // CHECK-NEXT: "col": 3, 123 // CHECK-NEXT: "tokLen": 4 124 // CHECK-NEXT: }, 125 // CHECK-NEXT: "end": { 126 // CHECK-NEXT: "offset": 170, 127 // CHECK-NEXT: "col": 16, 128 // CHECK-NEXT: "tokLen": 8 129 // 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: {{^}}Dumping 140 // 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": 5 147 // CHECK-NEXT: }, 148 // CHECK-NEXT: "range": { 149 // CHECK-NEXT: "begin": { 150 // CHECK-NEXT: "offset": 182, 151 // CHECK-NEXT: "col": 3, 152 // CHECK-NEXT: "tokLen": 4 153 // CHECK-NEXT: }, 154 // CHECK-NEXT: "end": { 155 // CHECK-NEXT: "offset": 195, 156 // CHECK-NEXT: "col": 16, 157 // CHECK-NEXT: "tokLen": 1 158 // 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: {{^}}Dumping 169 // 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": 5 176 // CHECK-NEXT: }, 177 // CHECK-NEXT: "range": { 178 // CHECK-NEXT: "begin": { 179 // CHECK-NEXT: "offset": 200, 180 // CHECK-NEXT: "col": 3, 181 // CHECK-NEXT: "tokLen": 4 182 // CHECK-NEXT: }, 183 // CHECK-NEXT: "end": { 184 // CHECK-NEXT: "offset": 213, 185 // CHECK-NEXT: "col": 16, 186 // CHECK-NEXT: "tokLen": 2 187 // 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: {{^}}Dumping 198 // 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": 5 205 // CHECK-NEXT: }, 206 // CHECK-NEXT: "range": { 207 // CHECK-NEXT: "begin": { 208 // CHECK-NEXT: "offset": 219, 209 // CHECK-NEXT: "col": 3, 210 // CHECK-NEXT: "tokLen": 7 211 // CHECK-NEXT: }, 212 // CHECK-NEXT: "end": { 213 // CHECK-NEXT: "offset": 253, 214 // CHECK-NEXT: "col": 37, 215 // CHECK-NEXT: "tokLen": 1 216 // 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": 1 232 // CHECK-NEXT: }, 233 // CHECK-NEXT: "range": { 234 // CHECK-NEXT: "begin": { 235 // CHECK-NEXT: "offset": 238, 236 // CHECK-NEXT: "col": 22, 237 // CHECK-NEXT: "tokLen": 5 238 // CHECK-NEXT: }, 239 // CHECK-NEXT: "end": { 240 // CHECK-NEXT: "offset": 238, 241 // CHECK-NEXT: "col": 22, 242 // CHECK-NEXT: "tokLen": 5 243 // 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": 1 256 // CHECK-NEXT: }, 257 // CHECK-NEXT: "range": { 258 // CHECK-NEXT: "begin": { 259 // CHECK-NEXT: "offset": 245, 260 // CHECK-NEXT: "col": 29, 261 // CHECK-NEXT: "tokLen": 3 262 // CHECK-NEXT: }, 263 // CHECK-NEXT: "end": { 264 // CHECK-NEXT: "offset": 251, 265 // CHECK-NEXT: "col": 35, 266 // CHECK-NEXT: "tokLen": 2 267 // 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": 2 282 // CHECK-NEXT: }, 283 // CHECK-NEXT: "end": { 284 // CHECK-NEXT: "offset": 251, 285 // CHECK-NEXT: "col": 35, 286 // CHECK-NEXT: "tokLen": 2 287 // 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: {{^}}Dumping 302 // 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": 5 309 // CHECK-NEXT: }, 310 // CHECK-NEXT: "range": { 311 // CHECK-NEXT: "begin": { 312 // CHECK-NEXT: "offset": 258, 313 // CHECK-NEXT: "col": 3, 314 // CHECK-NEXT: "tokLen": 7 315 // CHECK-NEXT: }, 316 // CHECK-NEXT: "end": { 317 // CHECK-NEXT: "offset": 281, 318 // CHECK-NEXT: "col": 26, 319 // CHECK-NEXT: "tokLen": 1 320 // 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": true 329 // CHECK-NEXT: } 330 331 332 // CHECK-NOT: {{^}}Dumping 333 // 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": 5 340 // CHECK-NEXT: }, 341 // CHECK-NEXT: "range": { 342 // CHECK-NEXT: "begin": { 343 // CHECK-NEXT: "offset": 338, 344 // CHECK-NEXT: "col": 3, 345 // CHECK-NEXT: "tokLen": 4 346 // CHECK-NEXT: }, 347 // CHECK-NEXT: "end": { 348 // CHECK-NEXT: "offset": 367, 349 // CHECK-NEXT: "col": 32, 350 // CHECK-NEXT: "tokLen": 8 351 // 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": 1 366 // CHECK-NEXT: }, 367 // CHECK-NEXT: "range": { 368 // CHECK-NEXT: "begin": { 369 // CHECK-NEXT: "offset": 349, 370 // CHECK-NEXT: "col": 14, 371 // CHECK-NEXT: "tokLen": 5 372 // CHECK-NEXT: }, 373 // CHECK-NEXT: "end": { 374 // CHECK-NEXT: "offset": 349, 375 // CHECK-NEXT: "col": 14, 376 // CHECK-NEXT: "tokLen": 5 377 // 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": 1 390 // CHECK-NEXT: }, 391 // CHECK-NEXT: "range": { 392 // CHECK-NEXT: "begin": { 393 // CHECK-NEXT: "offset": 356, 394 // CHECK-NEXT: "col": 21, 395 // CHECK-NEXT: "tokLen": 3 396 // CHECK-NEXT: }, 397 // CHECK-NEXT: "end": { 398 // CHECK-NEXT: "offset": 362, 399 // CHECK-NEXT: "col": 27, 400 // CHECK-NEXT: "tokLen": 3 401 // 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": 3 416 // CHECK-NEXT: }, 417 // CHECK-NEXT: "end": { 418 // CHECK-NEXT: "offset": 362, 419 // CHECK-NEXT: "col": 27, 420 // CHECK-NEXT: "tokLen": 3 421 // 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": 8 439 // CHECK-NEXT: }, 440 // CHECK-NEXT: "end": { 441 // CHECK-NEXT: "offset": 367, 442 // CHECK-NEXT: "col": 32, 443 // CHECK-NEXT: "tokLen": 8 444 // CHECK-NEXT: } 445 // CHECK-NEXT: } 446 // CHECK-NEXT: } 447 // CHECK-NEXT: ] 448 // CHECK-NEXT: } 449 450 451 // CHECK-NOT: {{^}}Dumping 452 // 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": 5 459 // CHECK-NEXT: }, 460 // CHECK-NEXT: "range": { 461 // CHECK-NEXT: "begin": { 462 // CHECK-NEXT: "offset": 394, 463 // CHECK-NEXT: "col": 3, 464 // CHECK-NEXT: "tokLen": 4 465 // CHECK-NEXT: }, 466 // CHECK-NEXT: "end": { 467 // CHECK-NEXT: "offset": 405, 468 // CHECK-NEXT: "col": 14, 469 // CHECK-NEXT: "tokLen": 1 470 // 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: {{^}}Dumping 481 // 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": 5 488 // CHECK-NEXT: }, 489 // CHECK-NEXT: "range": { 490 // CHECK-NEXT: "begin": { 491 // CHECK-NEXT: "offset": 411, 492 // CHECK-NEXT: "col": 1, 493 // CHECK-NEXT: "tokLen": 4 494 // CHECK-NEXT: }, 495 // CHECK-NEXT: "end": { 496 // CHECK-NEXT: "offset": 428, 497 // CHECK-NEXT: "col": 18, 498 // CHECK-NEXT: "tokLen": 1 499 // 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": 1 517 // CHECK-NEXT: }, 518 // CHECK-NEXT: "end": { 519 // CHECK-NEXT: "offset": 428, 520 // CHECK-NEXT: "col": 18, 521 // CHECK-NEXT: "tokLen": 1 522 // CHECK-NEXT: } 523 // CHECK-NEXT: } 524 // CHECK-NEXT: } 525 // CHECK-NEXT: ] 526 // CHECK-NEXT: } 527 528 529 // CHECK-NOT: {{^}}Dumping 530 // 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": 5 537 // CHECK-NEXT: }, 538 // CHECK-NEXT: "range": { 539 // CHECK-NEXT: "begin": { 540 // CHECK-NEXT: "offset": 441, 541 // CHECK-NEXT: "col": 1, 542 // CHECK-NEXT: "tokLen": 4 543 // CHECK-NEXT: }, 544 // CHECK-NEXT: "end": { 545 // CHECK-NEXT: "offset": 452, 546 // CHECK-NEXT: "col": 12, 547 // CHECK-NEXT: "tokLen": 1 548 // 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: {{^}}Dumping 560 // 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": 5 567 // CHECK-NEXT: }, 568 // CHECK-NEXT: "range": { 569 // CHECK-NEXT: "begin": { 570 // CHECK-NEXT: "offset": 455, 571 // CHECK-NEXT: "col": 1, 572 // CHECK-NEXT: "tokLen": 4 573 // CHECK-NEXT: }, 574 // CHECK-NEXT: "end": { 575 // CHECK-NEXT: "offset": 470, 576 // CHECK-NEXT: "col": 16, 577 // CHECK-NEXT: "tokLen": 1 578 // 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: {{^}}Dumping 589 // 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": 5 596 // CHECK-NEXT: }, 597 // CHECK-NEXT: "range": { 598 // CHECK-NEXT: "begin": { 599 // CHECK-NEXT: "offset": 473, 600 // CHECK-NEXT: "col": 1, 601 // CHECK-NEXT: "tokLen": 4 602 // CHECK-NEXT: }, 603 // CHECK-NEXT: "end": { 604 // CHECK-NEXT: "offset": 496, 605 // CHECK-NEXT: "col": 24, 606 // CHECK-NEXT: "tokLen": 1 607 // 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": 1 622 // CHECK-NEXT: }, 623 // CHECK-NEXT: "range": { 624 // CHECK-NEXT: "begin": { 625 // CHECK-NEXT: "offset": 484, 626 // CHECK-NEXT: "col": 12, 627 // CHECK-NEXT: "tokLen": 3 628 // CHECK-NEXT: }, 629 // CHECK-NEXT: "end": { 630 // CHECK-NEXT: "offset": 488, 631 // CHECK-NEXT: "col": 16, 632 // CHECK-NEXT: "tokLen": 1 633 // 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": 1 647 // CHECK-NEXT: }, 648 // CHECK-NEXT: "range": { 649 // CHECK-NEXT: "begin": { 650 // CHECK-NEXT: "offset": 491, 651 // CHECK-NEXT: "col": 19, 652 // CHECK-NEXT: "tokLen": 3 653 // CHECK-NEXT: }, 654 // CHECK-NEXT: "end": { 655 // CHECK-NEXT: "offset": 495, 656 // CHECK-NEXT: "col": 23, 657 // CHECK-NEXT: "tokLen": 1 658 // 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: {{^}}Dumping 670 // 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": 5 677 // CHECK-NEXT: }, 678 // CHECK-NEXT: "range": { 679 // CHECK-NEXT: "begin": { 680 // CHECK-NEXT: "offset": 499, 681 // CHECK-NEXT: "col": 1, 682 // CHECK-NEXT: "tokLen": 4 683 // CHECK-NEXT: }, 684 // CHECK-NEXT: "end": { 685 // CHECK-NEXT: "offset": 527, 686 // CHECK-NEXT: "col": 29, 687 // CHECK-NEXT: "tokLen": 1 688 // 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": 1 703 // CHECK-NEXT: }, 704 // CHECK-NEXT: "range": { 705 // CHECK-NEXT: "begin": { 706 // CHECK-NEXT: "offset": 510, 707 // CHECK-NEXT: "col": 12, 708 // CHECK-NEXT: "tokLen": 3 709 // CHECK-NEXT: }, 710 // CHECK-NEXT: "end": { 711 // CHECK-NEXT: "offset": 514, 712 // CHECK-NEXT: "col": 16, 713 // CHECK-NEXT: "tokLen": 1 714 // 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": 1 728 // CHECK-NEXT: }, 729 // CHECK-NEXT: "range": { 730 // CHECK-NEXT: "begin": { 731 // CHECK-NEXT: "offset": 517, 732 // CHECK-NEXT: "col": 19, 733 // CHECK-NEXT: "tokLen": 3 734 // CHECK-NEXT: }, 735 // CHECK-NEXT: "end": { 736 // CHECK-NEXT: "offset": 525, 737 // CHECK-NEXT: "col": 27, 738 // CHECK-NEXT: "tokLen": 2 739 // 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": 2 755 // CHECK-NEXT: }, 756 // CHECK-NEXT: "end": { 757 // CHECK-NEXT: "offset": 525, 758 // CHECK-NEXT: "col": 27, 759 // CHECK-NEXT: "tokLen": 2 760 // 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: {{^}}Dumping 775 // 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": 5 782 // CHECK-NEXT: }, 783 // CHECK-NEXT: "range": { 784 // CHECK-NEXT: "begin": { 785 // CHECK-NEXT: "offset": 530, 786 // CHECK-NEXT: "col": 1, 787 // CHECK-NEXT: "tokLen": 9 788 // CHECK-NEXT: }, 789 // CHECK-NEXT: "end": { 790 // CHECK-NEXT: "offset": 555, 791 // CHECK-NEXT: "col": 26, 792 // CHECK-NEXT: "tokLen": 1 793 // 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": true 801 // CHECK-NEXT: } 802 803 804 // CHECK-NOT: {{^}}Dumping 805 // 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": 5 812 // CHECK-NEXT: }, 813 // CHECK-NEXT: "range": { 814 // CHECK-NEXT: "begin": { 815 // CHECK-NEXT: "offset": 558, 816 // CHECK-NEXT: "col": 1, 817 // CHECK-NEXT: "tokLen": 6 818 // CHECK-NEXT: }, 819 // CHECK-NEXT: "end": { 820 // CHECK-NEXT: "offset": 580, 821 // CHECK-NEXT: "col": 23, 822 // CHECK-NEXT: "tokLen": 1 823 // 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: {{^}}Dumping 835 // 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": 5 842 // CHECK-NEXT: }, 843 // CHECK-NEXT: "range": { 844 // CHECK-NEXT: "begin": { 845 // CHECK-NEXT: "offset": 583, 846 // CHECK-NEXT: "col": 1, 847 // CHECK-NEXT: "tokLen": 6 848 // CHECK-NEXT: }, 849 // CHECK-NEXT: "end": { 850 // CHECK-NEXT: "offset": 605, 851 // CHECK-NEXT: "col": 23, 852 // CHECK-NEXT: "tokLen": 1 853 // 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: {{^}}Dumping 865 // 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": 5 872 // CHECK-NEXT: }, 873 // CHECK-NEXT: "range": { 874 // CHECK-NEXT: "begin": { 875 // CHECK-NEXT: "offset": 608, 876 // CHECK-NEXT: "col": 1, 877 // CHECK-NEXT: "tokLen": 6 878 // CHECK-NEXT: }, 879 // CHECK-NEXT: "end": { 880 // CHECK-NEXT: "offset": 630, 881 // CHECK-NEXT: "col": 23, 882 // CHECK-NEXT: "tokLen": 1 883 // 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": true 891 // CHECK-NEXT: } 892 893 894 // CHECK-NOT: {{^}}Dumping 895 // 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": 5 902 // CHECK-NEXT: }, 903 // CHECK-NEXT: "range": { 904 // CHECK-NEXT: "begin": { 905 // CHECK-NEXT: "offset": 633, 906 // CHECK-NEXT: "col": 1, 907 // CHECK-NEXT: "tokLen": 4 908 // CHECK-NEXT: }, 909 // CHECK-NEXT: "end": { 910 // CHECK-NEXT: "offset": 650, 911 // CHECK-NEXT: "col": 18, 912 // CHECK-NEXT: "tokLen": 8 913 // 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: {{^}}Dumping 924 // 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": 6 931 // CHECK-NEXT: }, 932 // CHECK-NEXT: "range": { 933 // CHECK-NEXT: "begin": { 934 // CHECK-NEXT: "offset": 660, 935 // CHECK-NEXT: "col": 1, 936 // CHECK-NEXT: "tokLen": 4 937 // CHECK-NEXT: }, 938 // CHECK-NEXT: "end": { 939 // CHECK-NEXT: "offset": 692, 940 // CHECK-NEXT: "col": 33, 941 // CHECK-NEXT: "tokLen": 1 942 // 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: {{^}}Dumping 953 // 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": 6 960 // CHECK-NEXT: }, 961 // CHECK-NEXT: "range": { 962 // CHECK-NEXT: "begin": { 963 // CHECK-NEXT: "offset": 695, 964 // CHECK-NEXT: "col": 1, 965 // CHECK-NEXT: "tokLen": 4 966 // CHECK-NEXT: }, 967 // CHECK-NEXT: "end": { 968 // CHECK-NEXT: "offset": 723, 969 // CHECK-NEXT: "col": 29, 970 // CHECK-NEXT: "tokLen": 1 971 // 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: {{^}}Dumping 982 // 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": 6 989 // 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": 8 996 // 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": 1 1002 // 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": 1 1014 // CHECK-NEXT: }, 1015 // CHECK-NEXT: "range": { 1016 // CHECK-NEXT: "begin": { 1017 // CHECK-NEXT: "offset": 737, 1018 // CHECK-NEXT: "col": 11, 1019 // CHECK-NEXT: "tokLen": 8 1020 // CHECK-NEXT: }, 1021 // CHECK-NEXT: "end": { 1022 // CHECK-NEXT: "offset": 746, 1023 // CHECK-NEXT: "col": 20, 1024 // CHECK-NEXT: "tokLen": 1 1025 // 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": 0 1032 // 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": 6 1041 // CHECK-NEXT: }, 1042 // CHECK-NEXT: "range": { 1043 // CHECK-NEXT: "begin": { 1044 // CHECK-NEXT: "offset": 749, 1045 // CHECK-NEXT: "col": 1, 1046 // CHECK-NEXT: "tokLen": 1 1047 // CHECK-NEXT: }, 1048 // CHECK-NEXT: "end": { 1049 // CHECK-NEXT: "offset": 760, 1050 // CHECK-NEXT: "col": 12, 1051 // CHECK-NEXT: "tokLen": 1 1052 // 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": 1 1066 // CHECK-NEXT: }, 1067 // CHECK-NEXT: "range": { 1068 // CHECK-NEXT: "begin": { 1069 // CHECK-NEXT: "offset": 758, 1070 // CHECK-NEXT: "col": 10, 1071 // CHECK-NEXT: "tokLen": 1 1072 // CHECK-NEXT: }, 1073 // CHECK-NEXT: "end": { 1074 // CHECK-NEXT: "offset": 759, 1075 // CHECK-NEXT: "col": 11, 1076 // CHECK-NEXT: "tokLen": 1 1077 // 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: {{^}}Dumping 1090 // 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": 6 1097 // CHECK-NEXT: }, 1098 // CHECK-NEXT: "range": { 1099 // CHECK-NEXT: "begin": { 1100 // CHECK-NEXT: "offset": 764, 1101 // CHECK-NEXT: "col": 1, 1102 // CHECK-NEXT: "tokLen": 4 1103 // CHECK-NEXT: }, 1104 // CHECK-NEXT: "end": { 1105 // CHECK-NEXT: "offset": 782, 1106 // CHECK-NEXT: "col": 19, 1107 // CHECK-NEXT: "tokLen": 1 1108 // 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": 1 1123 // CHECK-NEXT: }, 1124 // CHECK-NEXT: "range": { 1125 // CHECK-NEXT: "begin": { 1126 // CHECK-NEXT: "offset": 776, 1127 // CHECK-NEXT: "col": 13, 1128 // CHECK-NEXT: "tokLen": 3 1129 // CHECK-NEXT: }, 1130 // CHECK-NEXT: "end": { 1131 // CHECK-NEXT: "offset": 776, 1132 // CHECK-NEXT: "col": 13, 1133 // CHECK-NEXT: "tokLen": 3 1134 // 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": 1 1148 // CHECK-NEXT: }, 1149 // CHECK-NEXT: "end": { 1150 // CHECK-NEXT: "offset": 782, 1151 // CHECK-NEXT: "col": 19, 1152 // CHECK-NEXT: "tokLen": 1 1153 // CHECK-NEXT: } 1154 // CHECK-NEXT: } 1155 // CHECK-NEXT: } 1156 // CHECK-NEXT: ] 1157 // CHECK-NEXT: } 1158 1159 1160 // CHECK-NOT: {{^}}Dumping 1161 // 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": 6 1168 // CHECK-NEXT: }, 1169 // CHECK-NEXT: "range": { 1170 // CHECK-NEXT: "begin": { 1171 // CHECK-NEXT: "offset": 784, 1172 // CHECK-NEXT: "col": 1, 1173 // CHECK-NEXT: "tokLen": 4 1174 // CHECK-NEXT: }, 1175 // CHECK-NEXT: "end": { 1176 // CHECK-NEXT: "offset": 807, 1177 // CHECK-NEXT: "col": 24, 1178 // CHECK-NEXT: "tokLen": 1 1179 // 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": 1 1195 // CHECK-NEXT: }, 1196 // CHECK-NEXT: "range": { 1197 // CHECK-NEXT: "begin": { 1198 // CHECK-NEXT: "offset": 796, 1199 // CHECK-NEXT: "col": 13, 1200 // CHECK-NEXT: "tokLen": 3 1201 // CHECK-NEXT: }, 1202 // CHECK-NEXT: "end": { 1203 // CHECK-NEXT: "offset": 796, 1204 // CHECK-NEXT: "col": 13, 1205 // CHECK-NEXT: "tokLen": 3 1206 // 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": 1 1220 // CHECK-NEXT: }, 1221 // CHECK-NEXT: "end": { 1222 // CHECK-NEXT: "offset": 807, 1223 // CHECK-NEXT: "col": 24, 1224 // CHECK-NEXT: "tokLen": 1 1225 // CHECK-NEXT: } 1226 // CHECK-NEXT: } 1227 // CHECK-NEXT: } 1228 // CHECK-NEXT: ] 1229 // CHECK-NEXT: } 1230 1231 1232 // CHECK-NOT: {{^}}Dumping 1233 // 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": 11 1240 // 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": 8 1247 // 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": 1 1253 // 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": 2 1265 // CHECK-NEXT: }, 1266 // CHECK-NEXT: "range": { 1267 // CHECK-NEXT: "begin": { 1268 // CHECK-NEXT: "offset": 882, 1269 // CHECK-NEXT: "col": 11, 1270 // CHECK-NEXT: "tokLen": 8 1271 // CHECK-NEXT: }, 1272 // CHECK-NEXT: "end": { 1273 // CHECK-NEXT: "offset": 894, 1274 // CHECK-NEXT: "col": 23, 1275 // CHECK-NEXT: "tokLen": 2 1276 // 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": true 1284 // 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": 11 1293 // CHECK-NEXT: }, 1294 // CHECK-NEXT: "range": { 1295 // CHECK-NEXT: "begin": { 1296 // CHECK-NEXT: "offset": 898, 1297 // CHECK-NEXT: "col": 1, 1298 // CHECK-NEXT: "tokLen": 6 1299 // 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": 1 1305 // 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": true 1318 // 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": true 1325 // 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": true 1332 // 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": true 1338 // 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": true 1352 // 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": true 1358 // 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": 11 1369 // CHECK-NEXT: }, 1370 // CHECK-NEXT: "range": { 1371 // CHECK-NEXT: "begin": { 1372 // CHECK-NEXT: "offset": 898, 1373 // CHECK-NEXT: "col": 1, 1374 // CHECK-NEXT: "tokLen": 6 1375 // CHECK-NEXT: }, 1376 // CHECK-NEXT: "end": { 1377 // CHECK-NEXT: "offset": 905, 1378 // CHECK-NEXT: "col": 8, 1379 // CHECK-NEXT: "tokLen": 11 1380 // 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": 2 1394 // CHECK-NEXT: }, 1395 // CHECK-NEXT: "range": { 1396 // CHECK-NEXT: "begin": { 1397 // CHECK-NEXT: "offset": 923, 1398 // CHECK-NEXT: "col": 5, 1399 // CHECK-NEXT: "tokLen": 6 1400 // CHECK-NEXT: }, 1401 // CHECK-NEXT: "end": { 1402 // CHECK-NEXT: "offset": 932, 1403 // CHECK-NEXT: "col": 14, 1404 // CHECK-NEXT: "tokLen": 3 1405 // CHECK-NEXT: } 1406 // CHECK-NEXT: }, 1407 // CHECK-NEXT: "type": { 1408 // CHECK-NEXT: "qualType": "Ts" 1409 // CHECK-NEXT: }, 1410 // CHECK-NEXT: "isPackExpansion": true 1411 // CHECK-NEXT: } 1412 // CHECK-NEXT: ] 1413 // CHECK-NEXT: } 1414 // CHECK-NEXT: ] 1415 // CHECK-NEXT: } 1416