1 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s 2 3 struct A { 4 int arr[1]; 5 }; 6 7 struct B { 8 const A &a = A{{0}}; 9 }; 10 11 void test() { 12 B b{}; 13 } 14 15 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py 16 17 18 // CHECK-NOT: {{^}}Dumping 19 // 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": 1 179 // CHECK-NEXT: }, 180 // CHECK-NEXT: "range": { 181 // CHECK-NEXT: "begin": { 182 // CHECK-NEXT: "offset": 92, 183 // CHECK-NEXT: "col": 1, 184 // CHECK-NEXT: "tokLen": 6 185 // 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": 1 191 // 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": true 205 // 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": true 212 // CHECK-NEXT: }, 213 // CHECK-NEXT: "defaultCtor": { 214 // CHECK-NEXT: "exists": true, 215 // CHECK-NEXT: "needsImplicit": true, 216 // CHECK-NEXT: "trivial": true 217 // CHECK-NEXT: }, 218 // CHECK-NEXT: "dtor": { 219 // CHECK-NEXT: "irrelevant": true, 220 // CHECK-NEXT: "simple": true, 221 // CHECK-NEXT: "trivial": true 222 // 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": true 234 // 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": true 240 // 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": 1 251 // CHECK-NEXT: }, 252 // CHECK-NEXT: "range": { 253 // CHECK-NEXT: "begin": { 254 // CHECK-NEXT: "offset": 92, 255 // CHECK-NEXT: "col": 1, 256 // CHECK-NEXT: "tokLen": 6 257 // CHECK-NEXT: }, 258 // CHECK-NEXT: "end": { 259 // CHECK-NEXT: "offset": 99, 260 // CHECK-NEXT: "col": 8, 261 // CHECK-NEXT: "tokLen": 1 262 // 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": 3 276 // CHECK-NEXT: }, 277 // CHECK-NEXT: "range": { 278 // CHECK-NEXT: "begin": { 279 // CHECK-NEXT: "offset": 105, 280 // CHECK-NEXT: "col": 3, 281 // CHECK-NEXT: "tokLen": 3 282 // CHECK-NEXT: }, 283 // CHECK-NEXT: "end": { 284 // CHECK-NEXT: "offset": 114, 285 // CHECK-NEXT: "col": 12, 286 // CHECK-NEXT: "tokLen": 1 287 // 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": 1 302 // CHECK-NEXT: }, 303 // CHECK-NEXT: "range": { 304 // CHECK-NEXT: "begin": { 305 // CHECK-NEXT: "offset": 99, 306 // CHECK-NEXT: "col": 8, 307 // CHECK-NEXT: "tokLen": 1 308 // CHECK-NEXT: }, 309 // CHECK-NEXT: "end": { 310 // CHECK-NEXT: "offset": 99, 311 // CHECK-NEXT: "col": 8, 312 // CHECK-NEXT: "tokLen": 1 313 // 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": 1 335 // CHECK-NEXT: }, 336 // CHECK-NEXT: "range": { 337 // CHECK-NEXT: "begin": { 338 // CHECK-NEXT: "offset": 121, 339 // CHECK-NEXT: "col": 1, 340 // CHECK-NEXT: "tokLen": 6 341 // 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": 1 347 // 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": true 361 // 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": true 368 // 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": true 375 // 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": true 381 // 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": true 390 // 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": true 396 // 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": 1 407 // CHECK-NEXT: }, 408 // CHECK-NEXT: "range": { 409 // CHECK-NEXT: "begin": { 410 // CHECK-NEXT: "offset": 121, 411 // CHECK-NEXT: "col": 1, 412 // CHECK-NEXT: "tokLen": 6 413 // CHECK-NEXT: }, 414 // CHECK-NEXT: "end": { 415 // CHECK-NEXT: "offset": 128, 416 // CHECK-NEXT: "col": 8, 417 // CHECK-NEXT: "tokLen": 1 418 // 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": 1 432 // CHECK-NEXT: }, 433 // CHECK-NEXT: "range": { 434 // CHECK-NEXT: "begin": { 435 // CHECK-NEXT: "offset": 134, 436 // CHECK-NEXT: "col": 3, 437 // CHECK-NEXT: "tokLen": 5 438 // CHECK-NEXT: }, 439 // CHECK-NEXT: "end": { 440 // CHECK-NEXT: "offset": 152, 441 // CHECK-NEXT: "col": 21, 442 // CHECK-NEXT: "tokLen": 1 443 // 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": 1 459 // CHECK-NEXT: }, 460 // CHECK-NEXT: "end": { 461 // CHECK-NEXT: "offset": 152, 462 // CHECK-NEXT: "col": 21, 463 // CHECK-NEXT: "tokLen": 1 464 // 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": 1 479 // CHECK-NEXT: }, 480 // CHECK-NEXT: "end": { 481 // CHECK-NEXT: "offset": 152, 482 // CHECK-NEXT: "col": 21, 483 // CHECK-NEXT: "tokLen": 1 484 // 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": 1 509 // CHECK-NEXT: }, 510 // CHECK-NEXT: "end": { 511 // CHECK-NEXT: "offset": 152, 512 // CHECK-NEXT: "col": 21, 513 // CHECK-NEXT: "tokLen": 1 514 // 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": 1 530 // CHECK-NEXT: }, 531 // CHECK-NEXT: "end": { 532 // CHECK-NEXT: "offset": 152, 533 // CHECK-NEXT: "col": 21, 534 // CHECK-NEXT: "tokLen": 1 535 // 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": 1 551 // CHECK-NEXT: }, 552 // CHECK-NEXT: "end": { 553 // CHECK-NEXT: "offset": 152, 554 // CHECK-NEXT: "col": 21, 555 // CHECK-NEXT: "tokLen": 1 556 // 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": 1 571 // CHECK-NEXT: }, 572 // CHECK-NEXT: "end": { 573 // CHECK-NEXT: "offset": 151, 574 // CHECK-NEXT: "col": 20, 575 // CHECK-NEXT: "tokLen": 1 576 // 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": 1 591 // CHECK-NEXT: }, 592 // CHECK-NEXT: "end": { 593 // CHECK-NEXT: "offset": 150, 594 // CHECK-NEXT: "col": 19, 595 // CHECK-NEXT: "tokLen": 1 596 // 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": 4 628 // CHECK-NEXT: }, 629 // CHECK-NEXT: "range": { 630 // CHECK-NEXT: "begin": { 631 // CHECK-NEXT: "offset": 159, 632 // CHECK-NEXT: "col": 1, 633 // CHECK-NEXT: "tokLen": 4 634 // 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": 1 640 // 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": 1 657 // 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": 1 663 // 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": 1 675 // CHECK-NEXT: }, 676 // CHECK-NEXT: "end": { 677 // CHECK-NEXT: "offset": 180, 678 // CHECK-NEXT: "col": 8, 679 // CHECK-NEXT: "tokLen": 1 680 // 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": 1 690 // CHECK-NEXT: }, 691 // CHECK-NEXT: "range": { 692 // CHECK-NEXT: "begin": { 693 // CHECK-NEXT: "offset": 175, 694 // CHECK-NEXT: "col": 3, 695 // CHECK-NEXT: "tokLen": 1 696 // CHECK-NEXT: }, 697 // CHECK-NEXT: "end": { 698 // CHECK-NEXT: "offset": 179, 699 // CHECK-NEXT: "col": 7, 700 // CHECK-NEXT: "tokLen": 1 701 // 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": 1 717 // CHECK-NEXT: }, 718 // CHECK-NEXT: "end": { 719 // CHECK-NEXT: "offset": 179, 720 // CHECK-NEXT: "col": 7, 721 // CHECK-NEXT: "tokLen": 1 722 // 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": 1 737 // CHECK-NEXT: }, 738 // CHECK-NEXT: "end": { 739 // CHECK-NEXT: "offset": 179, 740 // CHECK-NEXT: "col": 7, 741 // CHECK-NEXT: "tokLen": 1 742 // 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": 1 759 // CHECK-NEXT: }, 760 // CHECK-NEXT: "end": { 761 // CHECK-NEXT: "offset": 152, 762 // CHECK-NEXT: "col": 21, 763 // CHECK-NEXT: "tokLen": 1 764 // 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": 1 779 // CHECK-NEXT: }, 780 // CHECK-NEXT: "end": { 781 // CHECK-NEXT: "offset": 152, 782 // CHECK-NEXT: "col": 21, 783 // CHECK-NEXT: "tokLen": 1 784 // 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": 1 809 // CHECK-NEXT: }, 810 // CHECK-NEXT: "end": { 811 // CHECK-NEXT: "offset": 152, 812 // CHECK-NEXT: "col": 21, 813 // CHECK-NEXT: "tokLen": 1 814 // 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": 1 830 // CHECK-NEXT: }, 831 // CHECK-NEXT: "end": { 832 // CHECK-NEXT: "offset": 152, 833 // CHECK-NEXT: "col": 21, 834 // CHECK-NEXT: "tokLen": 1 835 // 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": 1 851 // CHECK-NEXT: }, 852 // CHECK-NEXT: "end": { 853 // CHECK-NEXT: "offset": 152, 854 // CHECK-NEXT: "col": 21, 855 // CHECK-NEXT: "tokLen": 1 856 // 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": 1 871 // CHECK-NEXT: }, 872 // CHECK-NEXT: "end": { 873 // CHECK-NEXT: "offset": 151, 874 // CHECK-NEXT: "col": 20, 875 // CHECK-NEXT: "tokLen": 1 876 // 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": 1 891 // CHECK-NEXT: }, 892 // CHECK-NEXT: "end": { 893 // CHECK-NEXT: "offset": 150, 894 // CHECK-NEXT: "col": 19, 895 // CHECK-NEXT: "tokLen": 1 896 // 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