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