1 // RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++17 -ast-dump=json %s | FileCheck %s 2 3 void func(int val) { 4 if (val) 5 ; 6 7 if (val) 8 ; 9 else 10 ; 11 12 if (val) 13 ; 14 else if (val) 15 ; 16 else 17 ; 18 19 if constexpr(10 == 10) 20 ; 21 22 if (int i = 12) 23 ; 24 25 if (int i = 12; i) 26 ; 27 } 28 29 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py 30 // using --filters=IfStmt 31 32 // CHECK: "kind": "IfStmt", 33 // CHECK-NEXT: "range": { 34 // CHECK-NEXT: "begin": { 35 // CHECK-NEXT: "offset": 111, 36 // CHECK-NEXT: "line": 4, 37 // CHECK-NEXT: "col": 3, 38 // CHECK-NEXT: "tokLen": 2 39 // CHECK-NEXT: }, 40 // CHECK-NEXT: "end": { 41 // CHECK-NEXT: "offset": 124, 42 // CHECK-NEXT: "line": 5, 43 // CHECK-NEXT: "col": 5, 44 // CHECK-NEXT: "tokLen": 1 45 // CHECK-NEXT: } 46 // CHECK-NEXT: }, 47 // CHECK-NEXT: "inner": [ 48 // CHECK-NEXT: { 49 // CHECK-NEXT: "id": "0x{{.*}}", 50 // CHECK-NEXT: "kind": "ImplicitCastExpr", 51 // CHECK-NEXT: "range": { 52 // CHECK-NEXT: "begin": { 53 // CHECK-NEXT: "offset": 115, 54 // CHECK-NEXT: "line": 4, 55 // CHECK-NEXT: "col": 7, 56 // CHECK-NEXT: "tokLen": 3 57 // CHECK-NEXT: }, 58 // CHECK-NEXT: "end": { 59 // CHECK-NEXT: "offset": 115, 60 // CHECK-NEXT: "col": 7, 61 // CHECK-NEXT: "tokLen": 3 62 // CHECK-NEXT: } 63 // CHECK-NEXT: }, 64 // CHECK-NEXT: "type": { 65 // CHECK-NEXT: "qualType": "bool" 66 // CHECK-NEXT: }, 67 // CHECK-NEXT: "valueCategory": "prvalue", 68 // CHECK-NEXT: "castKind": "IntegralToBoolean", 69 // CHECK-NEXT: "inner": [ 70 // CHECK-NEXT: { 71 // CHECK-NEXT: "id": "0x{{.*}}", 72 // CHECK-NEXT: "kind": "ImplicitCastExpr", 73 // CHECK-NEXT: "range": { 74 // CHECK-NEXT: "begin": { 75 // CHECK-NEXT: "offset": 115, 76 // CHECK-NEXT: "col": 7, 77 // CHECK-NEXT: "tokLen": 3 78 // CHECK-NEXT: }, 79 // CHECK-NEXT: "end": { 80 // CHECK-NEXT: "offset": 115, 81 // CHECK-NEXT: "col": 7, 82 // CHECK-NEXT: "tokLen": 3 83 // CHECK-NEXT: } 84 // CHECK-NEXT: }, 85 // CHECK-NEXT: "type": { 86 // CHECK-NEXT: "qualType": "int" 87 // CHECK-NEXT: }, 88 // CHECK-NEXT: "valueCategory": "prvalue", 89 // CHECK-NEXT: "castKind": "LValueToRValue", 90 // CHECK-NEXT: "inner": [ 91 // CHECK-NEXT: { 92 // CHECK-NEXT: "id": "0x{{.*}}", 93 // CHECK-NEXT: "kind": "DeclRefExpr", 94 // CHECK-NEXT: "range": { 95 // CHECK-NEXT: "begin": { 96 // CHECK-NEXT: "offset": 115, 97 // CHECK-NEXT: "col": 7, 98 // CHECK-NEXT: "tokLen": 3 99 // CHECK-NEXT: }, 100 // CHECK-NEXT: "end": { 101 // CHECK-NEXT: "offset": 115, 102 // CHECK-NEXT: "col": 7, 103 // CHECK-NEXT: "tokLen": 3 104 // CHECK-NEXT: } 105 // CHECK-NEXT: }, 106 // CHECK-NEXT: "type": { 107 // CHECK-NEXT: "qualType": "int" 108 // CHECK-NEXT: }, 109 // CHECK-NEXT: "valueCategory": "lvalue", 110 // CHECK-NEXT: "referencedDecl": { 111 // CHECK-NEXT: "id": "0x{{.*}}", 112 // CHECK-NEXT: "kind": "ParmVarDecl", 113 // CHECK-NEXT: "name": "val", 114 // CHECK-NEXT: "type": { 115 // CHECK-NEXT: "qualType": "int" 116 // CHECK-NEXT: } 117 // CHECK-NEXT: } 118 // CHECK-NEXT: } 119 // CHECK-NEXT: ] 120 // CHECK-NEXT: } 121 // CHECK-NEXT: ] 122 // CHECK-NEXT: }, 123 // CHECK-NEXT: { 124 // CHECK-NEXT: "id": "0x{{.*}}", 125 // CHECK-NEXT: "kind": "NullStmt", 126 // CHECK-NEXT: "range": { 127 // CHECK-NEXT: "begin": { 128 // CHECK-NEXT: "offset": 124, 129 // CHECK-NEXT: "line": 5, 130 // CHECK-NEXT: "col": 5, 131 // CHECK-NEXT: "tokLen": 1 132 // CHECK-NEXT: }, 133 // CHECK-NEXT: "end": { 134 // CHECK-NEXT: "offset": 124, 135 // CHECK-NEXT: "col": 5, 136 // CHECK-NEXT: "tokLen": 1 137 // CHECK-NEXT: } 138 // CHECK-NEXT: } 139 // CHECK-NEXT: } 140 // CHECK-NEXT: ] 141 // CHECK-NEXT: } 142 143 // CHECK: "kind": "IfStmt", 144 // CHECK-NEXT: "range": { 145 // CHECK-NEXT: "begin": { 146 // CHECK-NEXT: "offset": 129, 147 // CHECK-NEXT: "line": 7, 148 // CHECK-NEXT: "col": 3, 149 // CHECK-NEXT: "tokLen": 2 150 // CHECK-NEXT: }, 151 // CHECK-NEXT: "end": { 152 // CHECK-NEXT: "offset": 155, 153 // CHECK-NEXT: "line": 10, 154 // CHECK-NEXT: "col": 5, 155 // CHECK-NEXT: "tokLen": 1 156 // CHECK-NEXT: } 157 // CHECK-NEXT: }, 158 // CHECK-NEXT: "hasElse": true, 159 // CHECK-NEXT: "inner": [ 160 // CHECK-NEXT: { 161 // CHECK-NEXT: "id": "0x{{.*}}", 162 // CHECK-NEXT: "kind": "ImplicitCastExpr", 163 // CHECK-NEXT: "range": { 164 // CHECK-NEXT: "begin": { 165 // CHECK-NEXT: "offset": 133, 166 // CHECK-NEXT: "line": 7, 167 // CHECK-NEXT: "col": 7, 168 // CHECK-NEXT: "tokLen": 3 169 // CHECK-NEXT: }, 170 // CHECK-NEXT: "end": { 171 // CHECK-NEXT: "offset": 133, 172 // CHECK-NEXT: "col": 7, 173 // CHECK-NEXT: "tokLen": 3 174 // CHECK-NEXT: } 175 // CHECK-NEXT: }, 176 // CHECK-NEXT: "type": { 177 // CHECK-NEXT: "qualType": "bool" 178 // CHECK-NEXT: }, 179 // CHECK-NEXT: "valueCategory": "prvalue", 180 // CHECK-NEXT: "castKind": "IntegralToBoolean", 181 // CHECK-NEXT: "inner": [ 182 // CHECK-NEXT: { 183 // CHECK-NEXT: "id": "0x{{.*}}", 184 // CHECK-NEXT: "kind": "ImplicitCastExpr", 185 // CHECK-NEXT: "range": { 186 // CHECK-NEXT: "begin": { 187 // CHECK-NEXT: "offset": 133, 188 // CHECK-NEXT: "col": 7, 189 // CHECK-NEXT: "tokLen": 3 190 // CHECK-NEXT: }, 191 // CHECK-NEXT: "end": { 192 // CHECK-NEXT: "offset": 133, 193 // CHECK-NEXT: "col": 7, 194 // CHECK-NEXT: "tokLen": 3 195 // CHECK-NEXT: } 196 // CHECK-NEXT: }, 197 // CHECK-NEXT: "type": { 198 // CHECK-NEXT: "qualType": "int" 199 // CHECK-NEXT: }, 200 // CHECK-NEXT: "valueCategory": "prvalue", 201 // CHECK-NEXT: "castKind": "LValueToRValue", 202 // CHECK-NEXT: "inner": [ 203 // CHECK-NEXT: { 204 // CHECK-NEXT: "id": "0x{{.*}}", 205 // CHECK-NEXT: "kind": "DeclRefExpr", 206 // CHECK-NEXT: "range": { 207 // CHECK-NEXT: "begin": { 208 // CHECK-NEXT: "offset": 133, 209 // CHECK-NEXT: "col": 7, 210 // CHECK-NEXT: "tokLen": 3 211 // CHECK-NEXT: }, 212 // CHECK-NEXT: "end": { 213 // CHECK-NEXT: "offset": 133, 214 // CHECK-NEXT: "col": 7, 215 // CHECK-NEXT: "tokLen": 3 216 // CHECK-NEXT: } 217 // CHECK-NEXT: }, 218 // CHECK-NEXT: "type": { 219 // CHECK-NEXT: "qualType": "int" 220 // CHECK-NEXT: }, 221 // CHECK-NEXT: "valueCategory": "lvalue", 222 // CHECK-NEXT: "referencedDecl": { 223 // CHECK-NEXT: "id": "0x{{.*}}", 224 // CHECK-NEXT: "kind": "ParmVarDecl", 225 // CHECK-NEXT: "name": "val", 226 // CHECK-NEXT: "type": { 227 // CHECK-NEXT: "qualType": "int" 228 // CHECK-NEXT: } 229 // CHECK-NEXT: } 230 // CHECK-NEXT: } 231 // CHECK-NEXT: ] 232 // CHECK-NEXT: } 233 // CHECK-NEXT: ] 234 // CHECK-NEXT: }, 235 // CHECK-NEXT: { 236 // CHECK-NEXT: "id": "0x{{.*}}", 237 // CHECK-NEXT: "kind": "NullStmt", 238 // CHECK-NEXT: "range": { 239 // CHECK-NEXT: "begin": { 240 // CHECK-NEXT: "offset": 142, 241 // CHECK-NEXT: "line": 8, 242 // CHECK-NEXT: "col": 5, 243 // CHECK-NEXT: "tokLen": 1 244 // CHECK-NEXT: }, 245 // CHECK-NEXT: "end": { 246 // CHECK-NEXT: "offset": 142, 247 // CHECK-NEXT: "col": 5, 248 // CHECK-NEXT: "tokLen": 1 249 // CHECK-NEXT: } 250 // CHECK-NEXT: } 251 // CHECK-NEXT: }, 252 // CHECK-NEXT: { 253 // CHECK-NEXT: "id": "0x{{.*}}", 254 // CHECK-NEXT: "kind": "NullStmt", 255 // CHECK-NEXT: "range": { 256 // CHECK-NEXT: "begin": { 257 // CHECK-NEXT: "offset": 155, 258 // CHECK-NEXT: "line": 10, 259 // CHECK-NEXT: "col": 5, 260 // CHECK-NEXT: "tokLen": 1 261 // CHECK-NEXT: }, 262 // CHECK-NEXT: "end": { 263 // CHECK-NEXT: "offset": 155, 264 // CHECK-NEXT: "col": 5, 265 // CHECK-NEXT: "tokLen": 1 266 // CHECK-NEXT: } 267 // CHECK-NEXT: } 268 // CHECK-NEXT: } 269 // CHECK-NEXT: ] 270 // CHECK-NEXT: } 271 272 // CHECK: "kind": "IfStmt", 273 // CHECK-NEXT: "range": { 274 // CHECK-NEXT: "begin": { 275 // CHECK-NEXT: "offset": 160, 276 // CHECK-NEXT: "line": 12, 277 // CHECK-NEXT: "col": 3, 278 // CHECK-NEXT: "tokLen": 2 279 // CHECK-NEXT: }, 280 // CHECK-NEXT: "end": { 281 // CHECK-NEXT: "offset": 208, 282 // CHECK-NEXT: "line": 17, 283 // CHECK-NEXT: "col": 5, 284 // CHECK-NEXT: "tokLen": 1 285 // CHECK-NEXT: } 286 // CHECK-NEXT: }, 287 // CHECK-NEXT: "hasElse": true, 288 // CHECK-NEXT: "inner": [ 289 // CHECK-NEXT: { 290 // CHECK-NEXT: "id": "0x{{.*}}", 291 // CHECK-NEXT: "kind": "ImplicitCastExpr", 292 // CHECK-NEXT: "range": { 293 // CHECK-NEXT: "begin": { 294 // CHECK-NEXT: "offset": 164, 295 // CHECK-NEXT: "line": 12, 296 // CHECK-NEXT: "col": 7, 297 // CHECK-NEXT: "tokLen": 3 298 // CHECK-NEXT: }, 299 // CHECK-NEXT: "end": { 300 // CHECK-NEXT: "offset": 164, 301 // CHECK-NEXT: "col": 7, 302 // CHECK-NEXT: "tokLen": 3 303 // CHECK-NEXT: } 304 // CHECK-NEXT: }, 305 // CHECK-NEXT: "type": { 306 // CHECK-NEXT: "qualType": "bool" 307 // CHECK-NEXT: }, 308 // CHECK-NEXT: "valueCategory": "prvalue", 309 // CHECK-NEXT: "castKind": "IntegralToBoolean", 310 // CHECK-NEXT: "inner": [ 311 // CHECK-NEXT: { 312 // CHECK-NEXT: "id": "0x{{.*}}", 313 // CHECK-NEXT: "kind": "ImplicitCastExpr", 314 // CHECK-NEXT: "range": { 315 // CHECK-NEXT: "begin": { 316 // CHECK-NEXT: "offset": 164, 317 // CHECK-NEXT: "col": 7, 318 // CHECK-NEXT: "tokLen": 3 319 // CHECK-NEXT: }, 320 // CHECK-NEXT: "end": { 321 // CHECK-NEXT: "offset": 164, 322 // CHECK-NEXT: "col": 7, 323 // CHECK-NEXT: "tokLen": 3 324 // CHECK-NEXT: } 325 // CHECK-NEXT: }, 326 // CHECK-NEXT: "type": { 327 // CHECK-NEXT: "qualType": "int" 328 // CHECK-NEXT: }, 329 // CHECK-NEXT: "valueCategory": "prvalue", 330 // CHECK-NEXT: "castKind": "LValueToRValue", 331 // CHECK-NEXT: "inner": [ 332 // CHECK-NEXT: { 333 // CHECK-NEXT: "id": "0x{{.*}}", 334 // CHECK-NEXT: "kind": "DeclRefExpr", 335 // CHECK-NEXT: "range": { 336 // CHECK-NEXT: "begin": { 337 // CHECK-NEXT: "offset": 164, 338 // CHECK-NEXT: "col": 7, 339 // CHECK-NEXT: "tokLen": 3 340 // CHECK-NEXT: }, 341 // CHECK-NEXT: "end": { 342 // CHECK-NEXT: "offset": 164, 343 // CHECK-NEXT: "col": 7, 344 // CHECK-NEXT: "tokLen": 3 345 // CHECK-NEXT: } 346 // CHECK-NEXT: }, 347 // CHECK-NEXT: "type": { 348 // CHECK-NEXT: "qualType": "int" 349 // CHECK-NEXT: }, 350 // CHECK-NEXT: "valueCategory": "lvalue", 351 // CHECK-NEXT: "referencedDecl": { 352 // CHECK-NEXT: "id": "0x{{.*}}", 353 // CHECK-NEXT: "kind": "ParmVarDecl", 354 // CHECK-NEXT: "name": "val", 355 // CHECK-NEXT: "type": { 356 // CHECK-NEXT: "qualType": "int" 357 // CHECK-NEXT: } 358 // CHECK-NEXT: } 359 // CHECK-NEXT: } 360 // CHECK-NEXT: ] 361 // CHECK-NEXT: } 362 // CHECK-NEXT: ] 363 // CHECK-NEXT: }, 364 // CHECK-NEXT: { 365 // CHECK-NEXT: "id": "0x{{.*}}", 366 // CHECK-NEXT: "kind": "NullStmt", 367 // CHECK-NEXT: "range": { 368 // CHECK-NEXT: "begin": { 369 // CHECK-NEXT: "offset": 173, 370 // CHECK-NEXT: "line": 13, 371 // CHECK-NEXT: "col": 5, 372 // CHECK-NEXT: "tokLen": 1 373 // CHECK-NEXT: }, 374 // CHECK-NEXT: "end": { 375 // CHECK-NEXT: "offset": 173, 376 // CHECK-NEXT: "col": 5, 377 // CHECK-NEXT: "tokLen": 1 378 // CHECK-NEXT: } 379 // CHECK-NEXT: } 380 // CHECK-NEXT: }, 381 // CHECK-NEXT: { 382 // CHECK-NEXT: "id": "0x{{.*}}", 383 // CHECK-NEXT: "kind": "IfStmt", 384 // CHECK-NEXT: "range": { 385 // CHECK-NEXT: "begin": { 386 // CHECK-NEXT: "offset": 182, 387 // CHECK-NEXT: "line": 14, 388 // CHECK-NEXT: "col": 8, 389 // CHECK-NEXT: "tokLen": 2 390 // CHECK-NEXT: }, 391 // CHECK-NEXT: "end": { 392 // CHECK-NEXT: "offset": 208, 393 // CHECK-NEXT: "line": 17, 394 // CHECK-NEXT: "col": 5, 395 // CHECK-NEXT: "tokLen": 1 396 // CHECK-NEXT: } 397 // CHECK-NEXT: }, 398 // CHECK-NEXT: "hasElse": true, 399 // CHECK-NEXT: "inner": [ 400 // CHECK-NEXT: { 401 // CHECK-NEXT: "id": "0x{{.*}}", 402 // CHECK-NEXT: "kind": "ImplicitCastExpr", 403 // CHECK-NEXT: "range": { 404 // CHECK-NEXT: "begin": { 405 // CHECK-NEXT: "offset": 186, 406 // CHECK-NEXT: "line": 14, 407 // CHECK-NEXT: "col": 12, 408 // CHECK-NEXT: "tokLen": 3 409 // CHECK-NEXT: }, 410 // CHECK-NEXT: "end": { 411 // CHECK-NEXT: "offset": 186, 412 // CHECK-NEXT: "col": 12, 413 // CHECK-NEXT: "tokLen": 3 414 // CHECK-NEXT: } 415 // CHECK-NEXT: }, 416 // CHECK-NEXT: "type": { 417 // CHECK-NEXT: "qualType": "bool" 418 // CHECK-NEXT: }, 419 // CHECK-NEXT: "valueCategory": "prvalue", 420 // CHECK-NEXT: "castKind": "IntegralToBoolean", 421 // CHECK-NEXT: "inner": [ 422 // CHECK-NEXT: { 423 // CHECK-NEXT: "id": "0x{{.*}}", 424 // CHECK-NEXT: "kind": "ImplicitCastExpr", 425 // CHECK-NEXT: "range": { 426 // CHECK-NEXT: "begin": { 427 // CHECK-NEXT: "offset": 186, 428 // CHECK-NEXT: "col": 12, 429 // CHECK-NEXT: "tokLen": 3 430 // CHECK-NEXT: }, 431 // CHECK-NEXT: "end": { 432 // CHECK-NEXT: "offset": 186, 433 // CHECK-NEXT: "col": 12, 434 // CHECK-NEXT: "tokLen": 3 435 // CHECK-NEXT: } 436 // CHECK-NEXT: }, 437 // CHECK-NEXT: "type": { 438 // CHECK-NEXT: "qualType": "int" 439 // CHECK-NEXT: }, 440 // CHECK-NEXT: "valueCategory": "prvalue", 441 // CHECK-NEXT: "castKind": "LValueToRValue", 442 // CHECK-NEXT: "inner": [ 443 // CHECK-NEXT: { 444 // CHECK-NEXT: "id": "0x{{.*}}", 445 // CHECK-NEXT: "kind": "DeclRefExpr", 446 // CHECK-NEXT: "range": { 447 // CHECK-NEXT: "begin": { 448 // CHECK-NEXT: "offset": 186, 449 // CHECK-NEXT: "col": 12, 450 // CHECK-NEXT: "tokLen": 3 451 // CHECK-NEXT: }, 452 // CHECK-NEXT: "end": { 453 // CHECK-NEXT: "offset": 186, 454 // CHECK-NEXT: "col": 12, 455 // CHECK-NEXT: "tokLen": 3 456 // CHECK-NEXT: } 457 // CHECK-NEXT: }, 458 // CHECK-NEXT: "type": { 459 // CHECK-NEXT: "qualType": "int" 460 // CHECK-NEXT: }, 461 // CHECK-NEXT: "valueCategory": "lvalue", 462 // CHECK-NEXT: "referencedDecl": { 463 // CHECK-NEXT: "id": "0x{{.*}}", 464 // CHECK-NEXT: "kind": "ParmVarDecl", 465 // CHECK-NEXT: "name": "val", 466 // CHECK-NEXT: "type": { 467 // CHECK-NEXT: "qualType": "int" 468 // CHECK-NEXT: } 469 // CHECK-NEXT: } 470 // CHECK-NEXT: } 471 // CHECK-NEXT: ] 472 // CHECK-NEXT: } 473 // CHECK-NEXT: ] 474 // CHECK-NEXT: }, 475 // CHECK-NEXT: { 476 // CHECK-NEXT: "id": "0x{{.*}}", 477 // CHECK-NEXT: "kind": "NullStmt", 478 // CHECK-NEXT: "range": { 479 // CHECK-NEXT: "begin": { 480 // CHECK-NEXT: "offset": 195, 481 // CHECK-NEXT: "line": 15, 482 // CHECK-NEXT: "col": 5, 483 // CHECK-NEXT: "tokLen": 1 484 // CHECK-NEXT: }, 485 // CHECK-NEXT: "end": { 486 // CHECK-NEXT: "offset": 195, 487 // CHECK-NEXT: "col": 5, 488 // CHECK-NEXT: "tokLen": 1 489 // CHECK-NEXT: } 490 // CHECK-NEXT: } 491 // CHECK-NEXT: }, 492 // CHECK-NEXT: { 493 // CHECK-NEXT: "id": "0x{{.*}}", 494 // CHECK-NEXT: "kind": "NullStmt", 495 // CHECK-NEXT: "range": { 496 // CHECK-NEXT: "begin": { 497 // CHECK-NEXT: "offset": 208, 498 // CHECK-NEXT: "line": 17, 499 // CHECK-NEXT: "col": 5, 500 // CHECK-NEXT: "tokLen": 1 501 // CHECK-NEXT: }, 502 // CHECK-NEXT: "end": { 503 // CHECK-NEXT: "offset": 208, 504 // CHECK-NEXT: "col": 5, 505 // CHECK-NEXT: "tokLen": 1 506 // CHECK-NEXT: } 507 // CHECK-NEXT: } 508 // CHECK-NEXT: } 509 // CHECK-NEXT: ] 510 // CHECK-NEXT: } 511 // CHECK-NEXT: ] 512 // CHECK-NEXT: } 513 514 // CHECK: "kind": "IfStmt", 515 // CHECK-NEXT: "range": { 516 // CHECK-NEXT: "begin": { 517 // CHECK-NEXT: "offset": 213, 518 // CHECK-NEXT: "line": 19, 519 // CHECK-NEXT: "col": 3, 520 // CHECK-NEXT: "tokLen": 2 521 // CHECK-NEXT: }, 522 // CHECK-NEXT: "end": { 523 // CHECK-NEXT: "offset": 240, 524 // CHECK-NEXT: "line": 20, 525 // CHECK-NEXT: "col": 5, 526 // CHECK-NEXT: "tokLen": 1 527 // CHECK-NEXT: } 528 // CHECK-NEXT: }, 529 // CHECK-NEXT: "isConstexpr": true, 530 // CHECK-NEXT: "inner": [ 531 // CHECK-NEXT: { 532 // CHECK-NEXT: "id": "0x{{.*}}", 533 // CHECK-NEXT: "kind": "ConstantExpr", 534 // CHECK-NEXT: "range": { 535 // CHECK-NEXT: "begin": { 536 // CHECK-NEXT: "offset": 226, 537 // CHECK-NEXT: "line": 19, 538 // CHECK-NEXT: "col": 16, 539 // CHECK-NEXT: "tokLen": 2 540 // CHECK-NEXT: }, 541 // CHECK-NEXT: "end": { 542 // CHECK-NEXT: "offset": 232, 543 // CHECK-NEXT: "col": 22, 544 // CHECK-NEXT: "tokLen": 2 545 // CHECK-NEXT: } 546 // CHECK-NEXT: }, 547 // CHECK-NEXT: "type": { 548 // CHECK-NEXT: "qualType": "bool" 549 // CHECK-NEXT: }, 550 // CHECK-NEXT: "valueCategory": "prvalue", 551 // CHECK-NEXT: "value": "true", 552 // CHECK-NEXT: "inner": [ 553 // CHECK-NEXT: { 554 // CHECK-NEXT: "id": "0x{{.*}}", 555 // CHECK-NEXT: "kind": "BinaryOperator", 556 // CHECK-NEXT: "range": { 557 // CHECK-NEXT: "begin": { 558 // CHECK-NEXT: "offset": 226, 559 // CHECK-NEXT: "col": 16, 560 // CHECK-NEXT: "tokLen": 2 561 // CHECK-NEXT: }, 562 // CHECK-NEXT: "end": { 563 // CHECK-NEXT: "offset": 232, 564 // CHECK-NEXT: "col": 22, 565 // CHECK-NEXT: "tokLen": 2 566 // CHECK-NEXT: } 567 // CHECK-NEXT: }, 568 // CHECK-NEXT: "type": { 569 // CHECK-NEXT: "qualType": "bool" 570 // CHECK-NEXT: }, 571 // CHECK-NEXT: "valueCategory": "prvalue", 572 // CHECK-NEXT: "opcode": "==", 573 // CHECK-NEXT: "inner": [ 574 // CHECK-NEXT: { 575 // CHECK-NEXT: "id": "0x{{.*}}", 576 // CHECK-NEXT: "kind": "IntegerLiteral", 577 // CHECK-NEXT: "range": { 578 // CHECK-NEXT: "begin": { 579 // CHECK-NEXT: "offset": 226, 580 // CHECK-NEXT: "col": 16, 581 // CHECK-NEXT: "tokLen": 2 582 // CHECK-NEXT: }, 583 // CHECK-NEXT: "end": { 584 // CHECK-NEXT: "offset": 226, 585 // CHECK-NEXT: "col": 16, 586 // CHECK-NEXT: "tokLen": 2 587 // CHECK-NEXT: } 588 // CHECK-NEXT: }, 589 // CHECK-NEXT: "type": { 590 // CHECK-NEXT: "qualType": "int" 591 // CHECK-NEXT: }, 592 // CHECK-NEXT: "valueCategory": "prvalue", 593 // CHECK-NEXT: "value": "10" 594 // CHECK-NEXT: }, 595 // CHECK-NEXT: { 596 // CHECK-NEXT: "id": "0x{{.*}}", 597 // CHECK-NEXT: "kind": "IntegerLiteral", 598 // CHECK-NEXT: "range": { 599 // CHECK-NEXT: "begin": { 600 // CHECK-NEXT: "offset": 232, 601 // CHECK-NEXT: "col": 22, 602 // CHECK-NEXT: "tokLen": 2 603 // CHECK-NEXT: }, 604 // CHECK-NEXT: "end": { 605 // CHECK-NEXT: "offset": 232, 606 // CHECK-NEXT: "col": 22, 607 // CHECK-NEXT: "tokLen": 2 608 // CHECK-NEXT: } 609 // CHECK-NEXT: }, 610 // CHECK-NEXT: "type": { 611 // CHECK-NEXT: "qualType": "int" 612 // CHECK-NEXT: }, 613 // CHECK-NEXT: "valueCategory": "prvalue", 614 // CHECK-NEXT: "value": "10" 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": "NullStmt", 623 // CHECK-NEXT: "range": { 624 // CHECK-NEXT: "begin": { 625 // CHECK-NEXT: "offset": 240, 626 // CHECK-NEXT: "line": 20, 627 // CHECK-NEXT: "col": 5, 628 // CHECK-NEXT: "tokLen": 1 629 // CHECK-NEXT: }, 630 // CHECK-NEXT: "end": { 631 // CHECK-NEXT: "offset": 240, 632 // CHECK-NEXT: "col": 5, 633 // CHECK-NEXT: "tokLen": 1 634 // CHECK-NEXT: } 635 // CHECK-NEXT: } 636 // CHECK-NEXT: } 637 // CHECK-NEXT: ] 638 // CHECK-NEXT: } 639 640 // CHECK: "kind": "IfStmt", 641 // CHECK-NEXT: "range": { 642 // CHECK-NEXT: "begin": { 643 // CHECK-NEXT: "offset": 245, 644 // CHECK-NEXT: "line": 22, 645 // CHECK-NEXT: "col": 3, 646 // CHECK-NEXT: "tokLen": 2 647 // CHECK-NEXT: }, 648 // CHECK-NEXT: "end": { 649 // CHECK-NEXT: "offset": 265, 650 // CHECK-NEXT: "line": 23, 651 // CHECK-NEXT: "col": 5, 652 // CHECK-NEXT: "tokLen": 1 653 // CHECK-NEXT: } 654 // CHECK-NEXT: }, 655 // CHECK-NEXT: "hasVar": true, 656 // CHECK-NEXT: "inner": [ 657 // CHECK-NEXT: { 658 // CHECK-NEXT: "id": "0x{{.*}}", 659 // CHECK-NEXT: "kind": "DeclStmt", 660 // CHECK-NEXT: "range": { 661 // CHECK-NEXT: "begin": { 662 // CHECK-NEXT: "offset": 249, 663 // CHECK-NEXT: "line": 22, 664 // CHECK-NEXT: "col": 7, 665 // CHECK-NEXT: "tokLen": 3 666 // CHECK-NEXT: }, 667 // CHECK-NEXT: "end": { 668 // CHECK-NEXT: "offset": 257, 669 // CHECK-NEXT: "col": 15, 670 // CHECK-NEXT: "tokLen": 2 671 // CHECK-NEXT: } 672 // CHECK-NEXT: }, 673 // CHECK-NEXT: "inner": [ 674 // CHECK-NEXT: { 675 // CHECK-NEXT: "id": "0x{{.*}}", 676 // CHECK-NEXT: "kind": "VarDecl", 677 // CHECK-NEXT: "loc": { 678 // CHECK-NEXT: "offset": 253, 679 // CHECK-NEXT: "col": 11, 680 // CHECK-NEXT: "tokLen": 1 681 // CHECK-NEXT: }, 682 // CHECK-NEXT: "range": { 683 // CHECK-NEXT: "begin": { 684 // CHECK-NEXT: "offset": 249, 685 // CHECK-NEXT: "col": 7, 686 // CHECK-NEXT: "tokLen": 3 687 // CHECK-NEXT: }, 688 // CHECK-NEXT: "end": { 689 // CHECK-NEXT: "offset": 257, 690 // CHECK-NEXT: "col": 15, 691 // CHECK-NEXT: "tokLen": 2 692 // CHECK-NEXT: } 693 // CHECK-NEXT: }, 694 // CHECK-NEXT: "isUsed": true, 695 // CHECK-NEXT: "name": "i", 696 // CHECK-NEXT: "mangledName": "_ZZ4funciE1i", 697 // CHECK-NEXT: "type": { 698 // CHECK-NEXT: "qualType": "int" 699 // CHECK-NEXT: }, 700 // CHECK-NEXT: "init": "c", 701 // CHECK-NEXT: "inner": [ 702 // CHECK-NEXT: { 703 // CHECK-NEXT: "id": "0x{{.*}}", 704 // CHECK-NEXT: "kind": "IntegerLiteral", 705 // CHECK-NEXT: "range": { 706 // CHECK-NEXT: "begin": { 707 // CHECK-NEXT: "offset": 257, 708 // CHECK-NEXT: "col": 15, 709 // CHECK-NEXT: "tokLen": 2 710 // CHECK-NEXT: }, 711 // CHECK-NEXT: "end": { 712 // CHECK-NEXT: "offset": 257, 713 // CHECK-NEXT: "col": 15, 714 // CHECK-NEXT: "tokLen": 2 715 // CHECK-NEXT: } 716 // CHECK-NEXT: }, 717 // CHECK-NEXT: "type": { 718 // CHECK-NEXT: "qualType": "int" 719 // CHECK-NEXT: }, 720 // CHECK-NEXT: "valueCategory": "prvalue", 721 // CHECK-NEXT: "value": "12" 722 // CHECK-NEXT: } 723 // CHECK-NEXT: ] 724 // CHECK-NEXT: } 725 // CHECK-NEXT: ] 726 // CHECK-NEXT: }, 727 // CHECK-NEXT: { 728 // CHECK-NEXT: "id": "0x{{.*}}", 729 // CHECK-NEXT: "kind": "ImplicitCastExpr", 730 // CHECK-NEXT: "range": { 731 // CHECK-NEXT: "begin": { 732 // CHECK-NEXT: "offset": 253, 733 // CHECK-NEXT: "col": 11, 734 // CHECK-NEXT: "tokLen": 1 735 // CHECK-NEXT: }, 736 // CHECK-NEXT: "end": { 737 // CHECK-NEXT: "offset": 253, 738 // CHECK-NEXT: "col": 11, 739 // CHECK-NEXT: "tokLen": 1 740 // CHECK-NEXT: } 741 // CHECK-NEXT: }, 742 // CHECK-NEXT: "type": { 743 // CHECK-NEXT: "qualType": "bool" 744 // CHECK-NEXT: }, 745 // CHECK-NEXT: "valueCategory": "prvalue", 746 // CHECK-NEXT: "castKind": "IntegralToBoolean", 747 // CHECK-NEXT: "inner": [ 748 // CHECK-NEXT: { 749 // CHECK-NEXT: "id": "0x{{.*}}", 750 // CHECK-NEXT: "kind": "ImplicitCastExpr", 751 // CHECK-NEXT: "range": { 752 // CHECK-NEXT: "begin": { 753 // CHECK-NEXT: "offset": 253, 754 // CHECK-NEXT: "col": 11, 755 // CHECK-NEXT: "tokLen": 1 756 // CHECK-NEXT: }, 757 // CHECK-NEXT: "end": { 758 // CHECK-NEXT: "offset": 253, 759 // CHECK-NEXT: "col": 11, 760 // CHECK-NEXT: "tokLen": 1 761 // CHECK-NEXT: } 762 // CHECK-NEXT: }, 763 // CHECK-NEXT: "type": { 764 // CHECK-NEXT: "qualType": "int" 765 // CHECK-NEXT: }, 766 // CHECK-NEXT: "valueCategory": "prvalue", 767 // CHECK-NEXT: "castKind": "LValueToRValue", 768 // CHECK-NEXT: "inner": [ 769 // CHECK-NEXT: { 770 // CHECK-NEXT: "id": "0x{{.*}}", 771 // CHECK-NEXT: "kind": "DeclRefExpr", 772 // CHECK-NEXT: "range": { 773 // CHECK-NEXT: "begin": { 774 // CHECK-NEXT: "offset": 253, 775 // CHECK-NEXT: "col": 11, 776 // CHECK-NEXT: "tokLen": 1 777 // CHECK-NEXT: }, 778 // CHECK-NEXT: "end": { 779 // CHECK-NEXT: "offset": 253, 780 // CHECK-NEXT: "col": 11, 781 // CHECK-NEXT: "tokLen": 1 782 // CHECK-NEXT: } 783 // CHECK-NEXT: }, 784 // CHECK-NEXT: "type": { 785 // CHECK-NEXT: "qualType": "int" 786 // CHECK-NEXT: }, 787 // CHECK-NEXT: "valueCategory": "lvalue", 788 // CHECK-NEXT: "referencedDecl": { 789 // CHECK-NEXT: "id": "0x{{.*}}", 790 // CHECK-NEXT: "kind": "VarDecl", 791 // CHECK-NEXT: "name": "i", 792 // CHECK-NEXT: "type": { 793 // CHECK-NEXT: "qualType": "int" 794 // CHECK-NEXT: } 795 // CHECK-NEXT: } 796 // CHECK-NEXT: } 797 // CHECK-NEXT: ] 798 // CHECK-NEXT: } 799 // CHECK-NEXT: ] 800 // CHECK-NEXT: }, 801 // CHECK-NEXT: { 802 // CHECK-NEXT: "id": "0x{{.*}}", 803 // CHECK-NEXT: "kind": "NullStmt", 804 // CHECK-NEXT: "range": { 805 // CHECK-NEXT: "begin": { 806 // CHECK-NEXT: "offset": 265, 807 // CHECK-NEXT: "line": 23, 808 // CHECK-NEXT: "col": 5, 809 // CHECK-NEXT: "tokLen": 1 810 // CHECK-NEXT: }, 811 // CHECK-NEXT: "end": { 812 // CHECK-NEXT: "offset": 265, 813 // CHECK-NEXT: "col": 5, 814 // CHECK-NEXT: "tokLen": 1 815 // CHECK-NEXT: } 816 // CHECK-NEXT: } 817 // CHECK-NEXT: } 818 // CHECK-NEXT: ] 819 // CHECK-NEXT: } 820 821 // CHECK: "kind": "IfStmt", 822 // CHECK-NEXT: "range": { 823 // CHECK-NEXT: "begin": { 824 // CHECK-NEXT: "offset": 270, 825 // CHECK-NEXT: "line": 25, 826 // CHECK-NEXT: "col": 3, 827 // CHECK-NEXT: "tokLen": 2 828 // CHECK-NEXT: }, 829 // CHECK-NEXT: "end": { 830 // CHECK-NEXT: "offset": 293, 831 // CHECK-NEXT: "line": 26, 832 // CHECK-NEXT: "col": 5, 833 // CHECK-NEXT: "tokLen": 1 834 // CHECK-NEXT: } 835 // CHECK-NEXT: }, 836 // CHECK-NEXT: "hasInit": true, 837 // CHECK-NEXT: "inner": [ 838 // CHECK-NEXT: { 839 // CHECK-NEXT: "id": "0x{{.*}}", 840 // CHECK-NEXT: "kind": "DeclStmt", 841 // CHECK-NEXT: "range": { 842 // CHECK-NEXT: "begin": { 843 // CHECK-NEXT: "offset": 274, 844 // CHECK-NEXT: "line": 25, 845 // CHECK-NEXT: "col": 7, 846 // CHECK-NEXT: "tokLen": 3 847 // CHECK-NEXT: }, 848 // CHECK-NEXT: "end": { 849 // CHECK-NEXT: "offset": 284, 850 // CHECK-NEXT: "col": 17, 851 // CHECK-NEXT: "tokLen": 1 852 // CHECK-NEXT: } 853 // CHECK-NEXT: }, 854 // CHECK-NEXT: "inner": [ 855 // CHECK-NEXT: { 856 // CHECK-NEXT: "id": "0x{{.*}}", 857 // CHECK-NEXT: "kind": "VarDecl", 858 // CHECK-NEXT: "loc": { 859 // CHECK-NEXT: "offset": 278, 860 // CHECK-NEXT: "col": 11, 861 // CHECK-NEXT: "tokLen": 1 862 // CHECK-NEXT: }, 863 // CHECK-NEXT: "range": { 864 // CHECK-NEXT: "begin": { 865 // CHECK-NEXT: "offset": 274, 866 // CHECK-NEXT: "col": 7, 867 // CHECK-NEXT: "tokLen": 3 868 // CHECK-NEXT: }, 869 // CHECK-NEXT: "end": { 870 // CHECK-NEXT: "offset": 282, 871 // CHECK-NEXT: "col": 15, 872 // CHECK-NEXT: "tokLen": 2 873 // CHECK-NEXT: } 874 // CHECK-NEXT: }, 875 // CHECK-NEXT: "isUsed": true, 876 // CHECK-NEXT: "name": "i", 877 // CHECK-NEXT: "mangledName": "_ZZ4funciE1i_0", 878 // CHECK-NEXT: "type": { 879 // CHECK-NEXT: "qualType": "int" 880 // CHECK-NEXT: }, 881 // CHECK-NEXT: "init": "c", 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": 282, 889 // CHECK-NEXT: "col": 15, 890 // CHECK-NEXT: "tokLen": 2 891 // CHECK-NEXT: }, 892 // CHECK-NEXT: "end": { 893 // CHECK-NEXT: "offset": 282, 894 // CHECK-NEXT: "col": 15, 895 // CHECK-NEXT: "tokLen": 2 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": "12" 903 // CHECK-NEXT: } 904 // CHECK-NEXT: ] 905 // CHECK-NEXT: } 906 // CHECK-NEXT: ] 907 // CHECK-NEXT: }, 908 // CHECK-NEXT: { 909 // CHECK-NEXT: "id": "0x{{.*}}", 910 // CHECK-NEXT: "kind": "ImplicitCastExpr", 911 // CHECK-NEXT: "range": { 912 // CHECK-NEXT: "begin": { 913 // CHECK-NEXT: "offset": 286, 914 // CHECK-NEXT: "col": 19, 915 // CHECK-NEXT: "tokLen": 1 916 // CHECK-NEXT: }, 917 // CHECK-NEXT: "end": { 918 // CHECK-NEXT: "offset": 286, 919 // CHECK-NEXT: "col": 19, 920 // CHECK-NEXT: "tokLen": 1 921 // CHECK-NEXT: } 922 // CHECK-NEXT: }, 923 // CHECK-NEXT: "type": { 924 // CHECK-NEXT: "qualType": "bool" 925 // CHECK-NEXT: }, 926 // CHECK-NEXT: "valueCategory": "prvalue", 927 // CHECK-NEXT: "castKind": "IntegralToBoolean", 928 // CHECK-NEXT: "inner": [ 929 // CHECK-NEXT: { 930 // CHECK-NEXT: "id": "0x{{.*}}", 931 // CHECK-NEXT: "kind": "ImplicitCastExpr", 932 // CHECK-NEXT: "range": { 933 // CHECK-NEXT: "begin": { 934 // CHECK-NEXT: "offset": 286, 935 // CHECK-NEXT: "col": 19, 936 // CHECK-NEXT: "tokLen": 1 937 // CHECK-NEXT: }, 938 // CHECK-NEXT: "end": { 939 // CHECK-NEXT: "offset": 286, 940 // CHECK-NEXT: "col": 19, 941 // CHECK-NEXT: "tokLen": 1 942 // CHECK-NEXT: } 943 // CHECK-NEXT: }, 944 // CHECK-NEXT: "type": { 945 // CHECK-NEXT: "qualType": "int" 946 // CHECK-NEXT: }, 947 // CHECK-NEXT: "valueCategory": "prvalue", 948 // CHECK-NEXT: "castKind": "LValueToRValue", 949 // CHECK-NEXT: "inner": [ 950 // CHECK-NEXT: { 951 // CHECK-NEXT: "id": "0x{{.*}}", 952 // CHECK-NEXT: "kind": "DeclRefExpr", 953 // CHECK-NEXT: "range": { 954 // CHECK-NEXT: "begin": { 955 // CHECK-NEXT: "offset": 286, 956 // CHECK-NEXT: "col": 19, 957 // CHECK-NEXT: "tokLen": 1 958 // CHECK-NEXT: }, 959 // CHECK-NEXT: "end": { 960 // CHECK-NEXT: "offset": 286, 961 // CHECK-NEXT: "col": 19, 962 // CHECK-NEXT: "tokLen": 1 963 // CHECK-NEXT: } 964 // CHECK-NEXT: }, 965 // CHECK-NEXT: "type": { 966 // CHECK-NEXT: "qualType": "int" 967 // CHECK-NEXT: }, 968 // CHECK-NEXT: "valueCategory": "lvalue", 969 // CHECK-NEXT: "referencedDecl": { 970 // CHECK-NEXT: "id": "0x{{.*}}", 971 // CHECK-NEXT: "kind": "VarDecl", 972 // CHECK-NEXT: "name": "i", 973 // CHECK-NEXT: "type": { 974 // CHECK-NEXT: "qualType": "int" 975 // CHECK-NEXT: } 976 // CHECK-NEXT: } 977 // CHECK-NEXT: } 978 // CHECK-NEXT: ] 979 // CHECK-NEXT: } 980 // CHECK-NEXT: ] 981 // CHECK-NEXT: }, 982 // CHECK-NEXT: { 983 // CHECK-NEXT: "id": "0x{{.*}}", 984 // CHECK-NEXT: "kind": "NullStmt", 985 // CHECK-NEXT: "range": { 986 // CHECK-NEXT: "begin": { 987 // CHECK-NEXT: "offset": 293, 988 // CHECK-NEXT: "line": 26, 989 // CHECK-NEXT: "col": 5, 990 // CHECK-NEXT: "tokLen": 1 991 // CHECK-NEXT: }, 992 // CHECK-NEXT: "end": { 993 // CHECK-NEXT: "offset": 293, 994 // CHECK-NEXT: "col": 5, 995 // CHECK-NEXT: "tokLen": 1 996 // CHECK-NEXT: } 997 // CHECK-NEXT: } 998 // CHECK-NEXT: } 999 // CHECK-NEXT: ] 1000 // CHECK-NEXT: } 1001