1 // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s 2 3 unsigned char implicitcast_0(unsigned int x) { 4 return x; 5 } 6 7 signed char implicitcast_1(unsigned int x) { 8 return x; 9 } 10 11 unsigned char implicitcast_2(signed int x) { 12 return x; 13 } 14 15 signed char implicitcast_3(signed int x) { 16 return x; 17 } 18 19 //----------------------------------------------------------------------------// 20 21 unsigned char cstylecast_0(unsigned int x) { 22 return (unsigned char)x; 23 } 24 25 signed char cstylecast_1(unsigned int x) { 26 return (signed char)x; 27 } 28 29 unsigned char cstylecast_2(signed int x) { 30 return (unsigned char)x; 31 } 32 33 signed char cstylecast_3(signed int x) { 34 return (signed char)x; 35 } 36 37 //----------------------------------------------------------------------------// 38 39 unsigned char cxxstaticcast_0(unsigned int x) { 40 return static_cast<unsigned char>(x); 41 } 42 43 signed char cxxstaticcast_1(unsigned int x) { 44 return static_cast<signed char>(x); 45 } 46 47 unsigned char cxxstaticcast_2(signed int x) { 48 return static_cast<unsigned char>(x); 49 } 50 51 signed char cxxstaticcast_3(signed int x) { 52 return static_cast<signed char>(x); 53 } 54 55 //----------------------------------------------------------------------------// 56 57 using UnsignedChar = unsigned char; 58 using SignedChar = signed char; 59 using UnsignedInt = unsigned int; 60 using SignedInt = signed int; 61 62 UnsignedChar cxxfunctionalcast_0(UnsignedInt x) { 63 return UnsignedChar(x); 64 } 65 66 SignedChar cxxfunctionalcast_1(UnsignedInt x) { 67 return SignedChar(x); 68 } 69 70 UnsignedChar cxxfunctionalcast_2(SignedInt x) { 71 return UnsignedChar(x); 72 } 73 74 SignedChar cxxfunctionalcast_3(SignedInt x) { 75 return SignedChar(x); 76 } 77 78 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py 79 // using --filters=ImplicitCastExpr,CStyleCastExpr,CXXStaticCastExpr,CXXFunctionalCastExpr 80 81 82 // CHECK: "kind": "ImplicitCastExpr", 83 // CHECK-NEXT: "range": { 84 // CHECK-NEXT: "begin": { 85 // CHECK-NEXT: "col": 10, 86 // CHECK-NEXT: "tokLen": 1 87 // CHECK-NEXT: }, 88 // CHECK-NEXT: "end": { 89 // CHECK-NEXT: "col": 10, 90 // CHECK-NEXT: "tokLen": 1 91 // CHECK-NEXT: } 92 // CHECK-NEXT: }, 93 // CHECK-NEXT: "type": { 94 // CHECK-NEXT: "qualType": "unsigned char" 95 // CHECK-NEXT: }, 96 // CHECK-NEXT: "valueCategory": "rvalue", 97 // CHECK-NEXT: "castKind": "IntegralCast", 98 // CHECK-NEXT: "inner": [ 99 // CHECK-NEXT: { 100 // CHECK-NEXT: "id": "0x{{.*}}", 101 // CHECK-NEXT: "kind": "ImplicitCastExpr", 102 // CHECK-NEXT: "range": { 103 // CHECK-NEXT: "begin": { 104 // CHECK-NEXT: "col": 10, 105 // CHECK-NEXT: "tokLen": 1 106 // CHECK-NEXT: }, 107 // CHECK-NEXT: "end": { 108 // CHECK-NEXT: "col": 10, 109 // CHECK-NEXT: "tokLen": 1 110 // CHECK-NEXT: } 111 // CHECK-NEXT: }, 112 // CHECK-NEXT: "type": { 113 // CHECK-NEXT: "qualType": "unsigned int" 114 // CHECK-NEXT: }, 115 // CHECK-NEXT: "valueCategory": "rvalue", 116 // CHECK-NEXT: "castKind": "LValueToRValue", 117 // CHECK-NEXT: "inner": [ 118 // CHECK-NEXT: { 119 // CHECK-NEXT: "id": "0x{{.*}}", 120 // CHECK-NEXT: "kind": "DeclRefExpr", 121 // CHECK-NEXT: "range": { 122 // CHECK-NEXT: "begin": { 123 // CHECK-NEXT: "col": 10, 124 // CHECK-NEXT: "tokLen": 1 125 // CHECK-NEXT: }, 126 // CHECK-NEXT: "end": { 127 // CHECK-NEXT: "col": 10, 128 // CHECK-NEXT: "tokLen": 1 129 // CHECK-NEXT: } 130 // CHECK-NEXT: }, 131 // CHECK-NEXT: "type": { 132 // CHECK-NEXT: "qualType": "unsigned int" 133 // CHECK-NEXT: }, 134 // CHECK-NEXT: "valueCategory": "lvalue", 135 // CHECK-NEXT: "referencedDecl": { 136 // CHECK-NEXT: "id": "0x{{.*}}", 137 // CHECK-NEXT: "kind": "ParmVarDecl", 138 // CHECK-NEXT: "name": "x", 139 // CHECK-NEXT: "type": { 140 // CHECK-NEXT: "qualType": "unsigned int" 141 // CHECK-NEXT: } 142 // CHECK-NEXT: } 143 // CHECK-NEXT: } 144 // CHECK-NEXT: ] 145 // CHECK-NEXT: } 146 // CHECK-NEXT: ] 147 // CHECK-NEXT: } 148 149 150 // CHECK: "kind": "ImplicitCastExpr", 151 // CHECK-NEXT: "range": { 152 // CHECK-NEXT: "begin": { 153 // CHECK-NEXT: "col": 10, 154 // CHECK-NEXT: "tokLen": 1 155 // CHECK-NEXT: }, 156 // CHECK-NEXT: "end": { 157 // CHECK-NEXT: "col": 10, 158 // CHECK-NEXT: "tokLen": 1 159 // CHECK-NEXT: } 160 // CHECK-NEXT: }, 161 // CHECK-NEXT: "type": { 162 // CHECK-NEXT: "qualType": "signed char" 163 // CHECK-NEXT: }, 164 // CHECK-NEXT: "valueCategory": "rvalue", 165 // CHECK-NEXT: "castKind": "IntegralCast", 166 // CHECK-NEXT: "inner": [ 167 // CHECK-NEXT: { 168 // CHECK-NEXT: "id": "0x{{.*}}", 169 // CHECK-NEXT: "kind": "ImplicitCastExpr", 170 // CHECK-NEXT: "range": { 171 // CHECK-NEXT: "begin": { 172 // CHECK-NEXT: "col": 10, 173 // CHECK-NEXT: "tokLen": 1 174 // CHECK-NEXT: }, 175 // CHECK-NEXT: "end": { 176 // CHECK-NEXT: "col": 10, 177 // CHECK-NEXT: "tokLen": 1 178 // CHECK-NEXT: } 179 // CHECK-NEXT: }, 180 // CHECK-NEXT: "type": { 181 // CHECK-NEXT: "qualType": "unsigned int" 182 // CHECK-NEXT: }, 183 // CHECK-NEXT: "valueCategory": "rvalue", 184 // CHECK-NEXT: "castKind": "LValueToRValue", 185 // CHECK-NEXT: "inner": [ 186 // CHECK-NEXT: { 187 // CHECK-NEXT: "id": "0x{{.*}}", 188 // CHECK-NEXT: "kind": "DeclRefExpr", 189 // CHECK-NEXT: "range": { 190 // CHECK-NEXT: "begin": { 191 // CHECK-NEXT: "col": 10, 192 // CHECK-NEXT: "tokLen": 1 193 // CHECK-NEXT: }, 194 // CHECK-NEXT: "end": { 195 // CHECK-NEXT: "col": 10, 196 // CHECK-NEXT: "tokLen": 1 197 // CHECK-NEXT: } 198 // CHECK-NEXT: }, 199 // CHECK-NEXT: "type": { 200 // CHECK-NEXT: "qualType": "unsigned int" 201 // CHECK-NEXT: }, 202 // CHECK-NEXT: "valueCategory": "lvalue", 203 // CHECK-NEXT: "referencedDecl": { 204 // CHECK-NEXT: "id": "0x{{.*}}", 205 // CHECK-NEXT: "kind": "ParmVarDecl", 206 // CHECK-NEXT: "name": "x", 207 // CHECK-NEXT: "type": { 208 // CHECK-NEXT: "qualType": "unsigned int" 209 // CHECK-NEXT: } 210 // CHECK-NEXT: } 211 // CHECK-NEXT: } 212 // CHECK-NEXT: ] 213 // CHECK-NEXT: } 214 // CHECK-NEXT: ] 215 // CHECK-NEXT: } 216 217 218 // CHECK: "kind": "ImplicitCastExpr", 219 // CHECK-NEXT: "range": { 220 // CHECK-NEXT: "begin": { 221 // CHECK-NEXT: "col": 10, 222 // CHECK-NEXT: "tokLen": 1 223 // CHECK-NEXT: }, 224 // CHECK-NEXT: "end": { 225 // CHECK-NEXT: "col": 10, 226 // CHECK-NEXT: "tokLen": 1 227 // CHECK-NEXT: } 228 // CHECK-NEXT: }, 229 // CHECK-NEXT: "type": { 230 // CHECK-NEXT: "qualType": "unsigned char" 231 // CHECK-NEXT: }, 232 // CHECK-NEXT: "valueCategory": "rvalue", 233 // CHECK-NEXT: "castKind": "IntegralCast", 234 // CHECK-NEXT: "inner": [ 235 // CHECK-NEXT: { 236 // CHECK-NEXT: "id": "0x{{.*}}", 237 // CHECK-NEXT: "kind": "ImplicitCastExpr", 238 // CHECK-NEXT: "range": { 239 // CHECK-NEXT: "begin": { 240 // CHECK-NEXT: "col": 10, 241 // CHECK-NEXT: "tokLen": 1 242 // CHECK-NEXT: }, 243 // CHECK-NEXT: "end": { 244 // CHECK-NEXT: "col": 10, 245 // CHECK-NEXT: "tokLen": 1 246 // CHECK-NEXT: } 247 // CHECK-NEXT: }, 248 // CHECK-NEXT: "type": { 249 // CHECK-NEXT: "qualType": "int" 250 // CHECK-NEXT: }, 251 // CHECK-NEXT: "valueCategory": "rvalue", 252 // CHECK-NEXT: "castKind": "LValueToRValue", 253 // CHECK-NEXT: "inner": [ 254 // CHECK-NEXT: { 255 // CHECK-NEXT: "id": "0x{{.*}}", 256 // CHECK-NEXT: "kind": "DeclRefExpr", 257 // CHECK-NEXT: "range": { 258 // CHECK-NEXT: "begin": { 259 // CHECK-NEXT: "col": 10, 260 // CHECK-NEXT: "tokLen": 1 261 // CHECK-NEXT: }, 262 // CHECK-NEXT: "end": { 263 // CHECK-NEXT: "col": 10, 264 // CHECK-NEXT: "tokLen": 1 265 // CHECK-NEXT: } 266 // CHECK-NEXT: }, 267 // CHECK-NEXT: "type": { 268 // CHECK-NEXT: "qualType": "int" 269 // CHECK-NEXT: }, 270 // CHECK-NEXT: "valueCategory": "lvalue", 271 // CHECK-NEXT: "referencedDecl": { 272 // CHECK-NEXT: "id": "0x{{.*}}", 273 // CHECK-NEXT: "kind": "ParmVarDecl", 274 // CHECK-NEXT: "name": "x", 275 // CHECK-NEXT: "type": { 276 // CHECK-NEXT: "qualType": "int" 277 // CHECK-NEXT: } 278 // CHECK-NEXT: } 279 // CHECK-NEXT: } 280 // CHECK-NEXT: ] 281 // CHECK-NEXT: } 282 // CHECK-NEXT: ] 283 // CHECK-NEXT: } 284 285 286 // CHECK: "kind": "ImplicitCastExpr", 287 // CHECK-NEXT: "range": { 288 // CHECK-NEXT: "begin": { 289 // CHECK-NEXT: "col": 10, 290 // CHECK-NEXT: "tokLen": 1 291 // CHECK-NEXT: }, 292 // CHECK-NEXT: "end": { 293 // CHECK-NEXT: "col": 10, 294 // CHECK-NEXT: "tokLen": 1 295 // CHECK-NEXT: } 296 // CHECK-NEXT: }, 297 // CHECK-NEXT: "type": { 298 // CHECK-NEXT: "qualType": "signed char" 299 // CHECK-NEXT: }, 300 // CHECK-NEXT: "valueCategory": "rvalue", 301 // CHECK-NEXT: "castKind": "IntegralCast", 302 // CHECK-NEXT: "inner": [ 303 // CHECK-NEXT: { 304 // CHECK-NEXT: "id": "0x{{.*}}", 305 // CHECK-NEXT: "kind": "ImplicitCastExpr", 306 // CHECK-NEXT: "range": { 307 // CHECK-NEXT: "begin": { 308 // CHECK-NEXT: "col": 10, 309 // CHECK-NEXT: "tokLen": 1 310 // CHECK-NEXT: }, 311 // CHECK-NEXT: "end": { 312 // CHECK-NEXT: "col": 10, 313 // CHECK-NEXT: "tokLen": 1 314 // CHECK-NEXT: } 315 // CHECK-NEXT: }, 316 // CHECK-NEXT: "type": { 317 // CHECK-NEXT: "qualType": "int" 318 // CHECK-NEXT: }, 319 // CHECK-NEXT: "valueCategory": "rvalue", 320 // CHECK-NEXT: "castKind": "LValueToRValue", 321 // CHECK-NEXT: "inner": [ 322 // CHECK-NEXT: { 323 // CHECK-NEXT: "id": "0x{{.*}}", 324 // CHECK-NEXT: "kind": "DeclRefExpr", 325 // CHECK-NEXT: "range": { 326 // CHECK-NEXT: "begin": { 327 // CHECK-NEXT: "col": 10, 328 // CHECK-NEXT: "tokLen": 1 329 // CHECK-NEXT: }, 330 // CHECK-NEXT: "end": { 331 // CHECK-NEXT: "col": 10, 332 // CHECK-NEXT: "tokLen": 1 333 // CHECK-NEXT: } 334 // CHECK-NEXT: }, 335 // CHECK-NEXT: "type": { 336 // CHECK-NEXT: "qualType": "int" 337 // CHECK-NEXT: }, 338 // CHECK-NEXT: "valueCategory": "lvalue", 339 // CHECK-NEXT: "referencedDecl": { 340 // CHECK-NEXT: "id": "0x{{.*}}", 341 // CHECK-NEXT: "kind": "ParmVarDecl", 342 // CHECK-NEXT: "name": "x", 343 // CHECK-NEXT: "type": { 344 // CHECK-NEXT: "qualType": "int" 345 // CHECK-NEXT: } 346 // CHECK-NEXT: } 347 // CHECK-NEXT: } 348 // CHECK-NEXT: ] 349 // CHECK-NEXT: } 350 // CHECK-NEXT: ] 351 // CHECK-NEXT: } 352 353 354 // CHECK: "kind": "CStyleCastExpr", 355 // CHECK-NEXT: "range": { 356 // CHECK-NEXT: "begin": { 357 // CHECK-NEXT: "col": 10, 358 // CHECK-NEXT: "tokLen": 1 359 // CHECK-NEXT: }, 360 // CHECK-NEXT: "end": { 361 // CHECK-NEXT: "col": 25, 362 // CHECK-NEXT: "tokLen": 1 363 // CHECK-NEXT: } 364 // CHECK-NEXT: }, 365 // CHECK-NEXT: "type": { 366 // CHECK-NEXT: "qualType": "unsigned char" 367 // CHECK-NEXT: }, 368 // CHECK-NEXT: "valueCategory": "rvalue", 369 // CHECK-NEXT: "castKind": "NoOp", 370 // CHECK-NEXT: "inner": [ 371 // CHECK-NEXT: { 372 // CHECK-NEXT: "id": "0x{{.*}}", 373 // CHECK-NEXT: "kind": "ImplicitCastExpr", 374 // CHECK-NEXT: "range": { 375 // CHECK-NEXT: "begin": { 376 // CHECK-NEXT: "col": 25, 377 // CHECK-NEXT: "tokLen": 1 378 // CHECK-NEXT: }, 379 // CHECK-NEXT: "end": { 380 // CHECK-NEXT: "col": 25, 381 // CHECK-NEXT: "tokLen": 1 382 // CHECK-NEXT: } 383 // CHECK-NEXT: }, 384 // CHECK-NEXT: "type": { 385 // CHECK-NEXT: "qualType": "unsigned char" 386 // CHECK-NEXT: }, 387 // CHECK-NEXT: "valueCategory": "rvalue", 388 // CHECK-NEXT: "castKind": "IntegralCast", 389 // CHECK-NEXT: "isPartOfExplicitCast": true, 390 // CHECK-NEXT: "inner": [ 391 // CHECK-NEXT: { 392 // CHECK-NEXT: "id": "0x{{.*}}", 393 // CHECK-NEXT: "kind": "ImplicitCastExpr", 394 // CHECK-NEXT: "range": { 395 // CHECK-NEXT: "begin": { 396 // CHECK-NEXT: "col": 25, 397 // CHECK-NEXT: "tokLen": 1 398 // CHECK-NEXT: }, 399 // CHECK-NEXT: "end": { 400 // CHECK-NEXT: "col": 25, 401 // CHECK-NEXT: "tokLen": 1 402 // CHECK-NEXT: } 403 // CHECK-NEXT: }, 404 // CHECK-NEXT: "type": { 405 // CHECK-NEXT: "qualType": "unsigned int" 406 // CHECK-NEXT: }, 407 // CHECK-NEXT: "valueCategory": "rvalue", 408 // CHECK-NEXT: "castKind": "LValueToRValue", 409 // CHECK-NEXT: "isPartOfExplicitCast": true, 410 // CHECK-NEXT: "inner": [ 411 // CHECK-NEXT: { 412 // CHECK-NEXT: "id": "0x{{.*}}", 413 // CHECK-NEXT: "kind": "DeclRefExpr", 414 // CHECK-NEXT: "range": { 415 // CHECK-NEXT: "begin": { 416 // CHECK-NEXT: "col": 25, 417 // CHECK-NEXT: "tokLen": 1 418 // CHECK-NEXT: }, 419 // CHECK-NEXT: "end": { 420 // CHECK-NEXT: "col": 25, 421 // CHECK-NEXT: "tokLen": 1 422 // CHECK-NEXT: } 423 // CHECK-NEXT: }, 424 // CHECK-NEXT: "type": { 425 // CHECK-NEXT: "qualType": "unsigned int" 426 // CHECK-NEXT: }, 427 // CHECK-NEXT: "valueCategory": "lvalue", 428 // CHECK-NEXT: "referencedDecl": { 429 // CHECK-NEXT: "id": "0x{{.*}}", 430 // CHECK-NEXT: "kind": "ParmVarDecl", 431 // CHECK-NEXT: "name": "x", 432 // CHECK-NEXT: "type": { 433 // CHECK-NEXT: "qualType": "unsigned int" 434 // CHECK-NEXT: } 435 // CHECK-NEXT: } 436 // CHECK-NEXT: } 437 // CHECK-NEXT: ] 438 // CHECK-NEXT: } 439 // CHECK-NEXT: ] 440 // CHECK-NEXT: } 441 // CHECK-NEXT: ] 442 // CHECK-NEXT: } 443 444 445 // CHECK: "kind": "CStyleCastExpr", 446 // CHECK-NEXT: "range": { 447 // CHECK-NEXT: "begin": { 448 // CHECK-NEXT: "col": 10, 449 // CHECK-NEXT: "tokLen": 1 450 // CHECK-NEXT: }, 451 // CHECK-NEXT: "end": { 452 // CHECK-NEXT: "col": 23, 453 // CHECK-NEXT: "tokLen": 1 454 // CHECK-NEXT: } 455 // CHECK-NEXT: }, 456 // CHECK-NEXT: "type": { 457 // CHECK-NEXT: "qualType": "signed char" 458 // CHECK-NEXT: }, 459 // CHECK-NEXT: "valueCategory": "rvalue", 460 // CHECK-NEXT: "castKind": "NoOp", 461 // CHECK-NEXT: "inner": [ 462 // CHECK-NEXT: { 463 // CHECK-NEXT: "id": "0x{{.*}}", 464 // CHECK-NEXT: "kind": "ImplicitCastExpr", 465 // CHECK-NEXT: "range": { 466 // CHECK-NEXT: "begin": { 467 // CHECK-NEXT: "col": 23, 468 // CHECK-NEXT: "tokLen": 1 469 // CHECK-NEXT: }, 470 // CHECK-NEXT: "end": { 471 // CHECK-NEXT: "col": 23, 472 // CHECK-NEXT: "tokLen": 1 473 // CHECK-NEXT: } 474 // CHECK-NEXT: }, 475 // CHECK-NEXT: "type": { 476 // CHECK-NEXT: "qualType": "signed char" 477 // CHECK-NEXT: }, 478 // CHECK-NEXT: "valueCategory": "rvalue", 479 // CHECK-NEXT: "castKind": "IntegralCast", 480 // CHECK-NEXT: "isPartOfExplicitCast": true, 481 // CHECK-NEXT: "inner": [ 482 // CHECK-NEXT: { 483 // CHECK-NEXT: "id": "0x{{.*}}", 484 // CHECK-NEXT: "kind": "ImplicitCastExpr", 485 // CHECK-NEXT: "range": { 486 // CHECK-NEXT: "begin": { 487 // CHECK-NEXT: "col": 23, 488 // CHECK-NEXT: "tokLen": 1 489 // CHECK-NEXT: }, 490 // CHECK-NEXT: "end": { 491 // CHECK-NEXT: "col": 23, 492 // CHECK-NEXT: "tokLen": 1 493 // CHECK-NEXT: } 494 // CHECK-NEXT: }, 495 // CHECK-NEXT: "type": { 496 // CHECK-NEXT: "qualType": "unsigned int" 497 // CHECK-NEXT: }, 498 // CHECK-NEXT: "valueCategory": "rvalue", 499 // CHECK-NEXT: "castKind": "LValueToRValue", 500 // CHECK-NEXT: "isPartOfExplicitCast": true, 501 // CHECK-NEXT: "inner": [ 502 // CHECK-NEXT: { 503 // CHECK-NEXT: "id": "0x{{.*}}", 504 // CHECK-NEXT: "kind": "DeclRefExpr", 505 // CHECK-NEXT: "range": { 506 // CHECK-NEXT: "begin": { 507 // CHECK-NEXT: "col": 23, 508 // CHECK-NEXT: "tokLen": 1 509 // CHECK-NEXT: }, 510 // CHECK-NEXT: "end": { 511 // CHECK-NEXT: "col": 23, 512 // CHECK-NEXT: "tokLen": 1 513 // CHECK-NEXT: } 514 // CHECK-NEXT: }, 515 // CHECK-NEXT: "type": { 516 // CHECK-NEXT: "qualType": "unsigned int" 517 // CHECK-NEXT: }, 518 // CHECK-NEXT: "valueCategory": "lvalue", 519 // CHECK-NEXT: "referencedDecl": { 520 // CHECK-NEXT: "id": "0x{{.*}}", 521 // CHECK-NEXT: "kind": "ParmVarDecl", 522 // CHECK-NEXT: "name": "x", 523 // CHECK-NEXT: "type": { 524 // CHECK-NEXT: "qualType": "unsigned int" 525 // CHECK-NEXT: } 526 // CHECK-NEXT: } 527 // CHECK-NEXT: } 528 // CHECK-NEXT: ] 529 // CHECK-NEXT: } 530 // CHECK-NEXT: ] 531 // CHECK-NEXT: } 532 // CHECK-NEXT: ] 533 // CHECK-NEXT: } 534 535 536 // CHECK: "kind": "CStyleCastExpr", 537 // CHECK-NEXT: "range": { 538 // CHECK-NEXT: "begin": { 539 // CHECK-NEXT: "col": 10, 540 // CHECK-NEXT: "tokLen": 1 541 // CHECK-NEXT: }, 542 // CHECK-NEXT: "end": { 543 // CHECK-NEXT: "col": 25, 544 // CHECK-NEXT: "tokLen": 1 545 // CHECK-NEXT: } 546 // CHECK-NEXT: }, 547 // CHECK-NEXT: "type": { 548 // CHECK-NEXT: "qualType": "unsigned char" 549 // CHECK-NEXT: }, 550 // CHECK-NEXT: "valueCategory": "rvalue", 551 // CHECK-NEXT: "castKind": "NoOp", 552 // CHECK-NEXT: "inner": [ 553 // CHECK-NEXT: { 554 // CHECK-NEXT: "id": "0x{{.*}}", 555 // CHECK-NEXT: "kind": "ImplicitCastExpr", 556 // CHECK-NEXT: "range": { 557 // CHECK-NEXT: "begin": { 558 // CHECK-NEXT: "col": 25, 559 // CHECK-NEXT: "tokLen": 1 560 // CHECK-NEXT: }, 561 // CHECK-NEXT: "end": { 562 // CHECK-NEXT: "col": 25, 563 // CHECK-NEXT: "tokLen": 1 564 // CHECK-NEXT: } 565 // CHECK-NEXT: }, 566 // CHECK-NEXT: "type": { 567 // CHECK-NEXT: "qualType": "unsigned char" 568 // CHECK-NEXT: }, 569 // CHECK-NEXT: "valueCategory": "rvalue", 570 // CHECK-NEXT: "castKind": "IntegralCast", 571 // CHECK-NEXT: "isPartOfExplicitCast": true, 572 // CHECK-NEXT: "inner": [ 573 // CHECK-NEXT: { 574 // CHECK-NEXT: "id": "0x{{.*}}", 575 // CHECK-NEXT: "kind": "ImplicitCastExpr", 576 // CHECK-NEXT: "range": { 577 // CHECK-NEXT: "begin": { 578 // CHECK-NEXT: "col": 25, 579 // CHECK-NEXT: "tokLen": 1 580 // CHECK-NEXT: }, 581 // CHECK-NEXT: "end": { 582 // CHECK-NEXT: "col": 25, 583 // CHECK-NEXT: "tokLen": 1 584 // CHECK-NEXT: } 585 // CHECK-NEXT: }, 586 // CHECK-NEXT: "type": { 587 // CHECK-NEXT: "qualType": "int" 588 // CHECK-NEXT: }, 589 // CHECK-NEXT: "valueCategory": "rvalue", 590 // CHECK-NEXT: "castKind": "LValueToRValue", 591 // CHECK-NEXT: "isPartOfExplicitCast": true, 592 // CHECK-NEXT: "inner": [ 593 // CHECK-NEXT: { 594 // CHECK-NEXT: "id": "0x{{.*}}", 595 // CHECK-NEXT: "kind": "DeclRefExpr", 596 // CHECK-NEXT: "range": { 597 // CHECK-NEXT: "begin": { 598 // CHECK-NEXT: "col": 25, 599 // CHECK-NEXT: "tokLen": 1 600 // CHECK-NEXT: }, 601 // CHECK-NEXT: "end": { 602 // CHECK-NEXT: "col": 25, 603 // CHECK-NEXT: "tokLen": 1 604 // CHECK-NEXT: } 605 // CHECK-NEXT: }, 606 // CHECK-NEXT: "type": { 607 // CHECK-NEXT: "qualType": "int" 608 // CHECK-NEXT: }, 609 // CHECK-NEXT: "valueCategory": "lvalue", 610 // CHECK-NEXT: "referencedDecl": { 611 // CHECK-NEXT: "id": "0x{{.*}}", 612 // CHECK-NEXT: "kind": "ParmVarDecl", 613 // CHECK-NEXT: "name": "x", 614 // CHECK-NEXT: "type": { 615 // CHECK-NEXT: "qualType": "int" 616 // CHECK-NEXT: } 617 // CHECK-NEXT: } 618 // CHECK-NEXT: } 619 // CHECK-NEXT: ] 620 // CHECK-NEXT: } 621 // CHECK-NEXT: ] 622 // CHECK-NEXT: } 623 // CHECK-NEXT: ] 624 // CHECK-NEXT: } 625 626 627 // CHECK: "kind": "CStyleCastExpr", 628 // CHECK-NEXT: "range": { 629 // CHECK-NEXT: "begin": { 630 // CHECK-NEXT: "col": 10, 631 // CHECK-NEXT: "tokLen": 1 632 // CHECK-NEXT: }, 633 // CHECK-NEXT: "end": { 634 // CHECK-NEXT: "col": 23, 635 // CHECK-NEXT: "tokLen": 1 636 // CHECK-NEXT: } 637 // CHECK-NEXT: }, 638 // CHECK-NEXT: "type": { 639 // CHECK-NEXT: "qualType": "signed char" 640 // CHECK-NEXT: }, 641 // CHECK-NEXT: "valueCategory": "rvalue", 642 // CHECK-NEXT: "castKind": "NoOp", 643 // CHECK-NEXT: "inner": [ 644 // CHECK-NEXT: { 645 // CHECK-NEXT: "id": "0x{{.*}}", 646 // CHECK-NEXT: "kind": "ImplicitCastExpr", 647 // CHECK-NEXT: "range": { 648 // CHECK-NEXT: "begin": { 649 // CHECK-NEXT: "col": 23, 650 // CHECK-NEXT: "tokLen": 1 651 // CHECK-NEXT: }, 652 // CHECK-NEXT: "end": { 653 // CHECK-NEXT: "col": 23, 654 // CHECK-NEXT: "tokLen": 1 655 // CHECK-NEXT: } 656 // CHECK-NEXT: }, 657 // CHECK-NEXT: "type": { 658 // CHECK-NEXT: "qualType": "signed char" 659 // CHECK-NEXT: }, 660 // CHECK-NEXT: "valueCategory": "rvalue", 661 // CHECK-NEXT: "castKind": "IntegralCast", 662 // CHECK-NEXT: "isPartOfExplicitCast": true, 663 // CHECK-NEXT: "inner": [ 664 // CHECK-NEXT: { 665 // CHECK-NEXT: "id": "0x{{.*}}", 666 // CHECK-NEXT: "kind": "ImplicitCastExpr", 667 // CHECK-NEXT: "range": { 668 // CHECK-NEXT: "begin": { 669 // CHECK-NEXT: "col": 23, 670 // CHECK-NEXT: "tokLen": 1 671 // CHECK-NEXT: }, 672 // CHECK-NEXT: "end": { 673 // CHECK-NEXT: "col": 23, 674 // CHECK-NEXT: "tokLen": 1 675 // CHECK-NEXT: } 676 // CHECK-NEXT: }, 677 // CHECK-NEXT: "type": { 678 // CHECK-NEXT: "qualType": "int" 679 // CHECK-NEXT: }, 680 // CHECK-NEXT: "valueCategory": "rvalue", 681 // CHECK-NEXT: "castKind": "LValueToRValue", 682 // CHECK-NEXT: "isPartOfExplicitCast": true, 683 // CHECK-NEXT: "inner": [ 684 // CHECK-NEXT: { 685 // CHECK-NEXT: "id": "0x{{.*}}", 686 // CHECK-NEXT: "kind": "DeclRefExpr", 687 // CHECK-NEXT: "range": { 688 // CHECK-NEXT: "begin": { 689 // CHECK-NEXT: "col": 23, 690 // CHECK-NEXT: "tokLen": 1 691 // CHECK-NEXT: }, 692 // CHECK-NEXT: "end": { 693 // CHECK-NEXT: "col": 23, 694 // CHECK-NEXT: "tokLen": 1 695 // CHECK-NEXT: } 696 // CHECK-NEXT: }, 697 // CHECK-NEXT: "type": { 698 // CHECK-NEXT: "qualType": "int" 699 // CHECK-NEXT: }, 700 // CHECK-NEXT: "valueCategory": "lvalue", 701 // CHECK-NEXT: "referencedDecl": { 702 // CHECK-NEXT: "id": "0x{{.*}}", 703 // CHECK-NEXT: "kind": "ParmVarDecl", 704 // CHECK-NEXT: "name": "x", 705 // CHECK-NEXT: "type": { 706 // CHECK-NEXT: "qualType": "int" 707 // CHECK-NEXT: } 708 // CHECK-NEXT: } 709 // CHECK-NEXT: } 710 // CHECK-NEXT: ] 711 // CHECK-NEXT: } 712 // CHECK-NEXT: ] 713 // CHECK-NEXT: } 714 // CHECK-NEXT: ] 715 // CHECK-NEXT: } 716 717 718 // CHECK: "kind": "CXXStaticCastExpr", 719 // CHECK-NEXT: "range": { 720 // CHECK-NEXT: "begin": { 721 // CHECK-NEXT: "col": 10, 722 // CHECK-NEXT: "tokLen": 11 723 // CHECK-NEXT: }, 724 // CHECK-NEXT: "end": { 725 // CHECK-NEXT: "col": 38, 726 // CHECK-NEXT: "tokLen": 1 727 // CHECK-NEXT: } 728 // CHECK-NEXT: }, 729 // CHECK-NEXT: "type": { 730 // CHECK-NEXT: "qualType": "unsigned char" 731 // CHECK-NEXT: }, 732 // CHECK-NEXT: "valueCategory": "rvalue", 733 // CHECK-NEXT: "castKind": "NoOp", 734 // CHECK-NEXT: "inner": [ 735 // CHECK-NEXT: { 736 // CHECK-NEXT: "id": "0x{{.*}}", 737 // CHECK-NEXT: "kind": "ImplicitCastExpr", 738 // CHECK-NEXT: "range": { 739 // CHECK-NEXT: "begin": { 740 // CHECK-NEXT: "col": 37, 741 // CHECK-NEXT: "tokLen": 1 742 // CHECK-NEXT: }, 743 // CHECK-NEXT: "end": { 744 // CHECK-NEXT: "col": 37, 745 // CHECK-NEXT: "tokLen": 1 746 // CHECK-NEXT: } 747 // CHECK-NEXT: }, 748 // CHECK-NEXT: "type": { 749 // CHECK-NEXT: "qualType": "unsigned char" 750 // CHECK-NEXT: }, 751 // CHECK-NEXT: "valueCategory": "rvalue", 752 // CHECK-NEXT: "castKind": "IntegralCast", 753 // CHECK-NEXT: "isPartOfExplicitCast": true, 754 // CHECK-NEXT: "inner": [ 755 // CHECK-NEXT: { 756 // CHECK-NEXT: "id": "0x{{.*}}", 757 // CHECK-NEXT: "kind": "ImplicitCastExpr", 758 // CHECK-NEXT: "range": { 759 // CHECK-NEXT: "begin": { 760 // CHECK-NEXT: "col": 37, 761 // CHECK-NEXT: "tokLen": 1 762 // CHECK-NEXT: }, 763 // CHECK-NEXT: "end": { 764 // CHECK-NEXT: "col": 37, 765 // CHECK-NEXT: "tokLen": 1 766 // CHECK-NEXT: } 767 // CHECK-NEXT: }, 768 // CHECK-NEXT: "type": { 769 // CHECK-NEXT: "qualType": "unsigned int" 770 // CHECK-NEXT: }, 771 // CHECK-NEXT: "valueCategory": "rvalue", 772 // CHECK-NEXT: "castKind": "LValueToRValue", 773 // CHECK-NEXT: "isPartOfExplicitCast": true, 774 // CHECK-NEXT: "inner": [ 775 // CHECK-NEXT: { 776 // CHECK-NEXT: "id": "0x{{.*}}", 777 // CHECK-NEXT: "kind": "DeclRefExpr", 778 // CHECK-NEXT: "range": { 779 // CHECK-NEXT: "begin": { 780 // CHECK-NEXT: "col": 37, 781 // CHECK-NEXT: "tokLen": 1 782 // CHECK-NEXT: }, 783 // CHECK-NEXT: "end": { 784 // CHECK-NEXT: "col": 37, 785 // CHECK-NEXT: "tokLen": 1 786 // CHECK-NEXT: } 787 // CHECK-NEXT: }, 788 // CHECK-NEXT: "type": { 789 // CHECK-NEXT: "qualType": "unsigned int" 790 // CHECK-NEXT: }, 791 // CHECK-NEXT: "valueCategory": "lvalue", 792 // CHECK-NEXT: "referencedDecl": { 793 // CHECK-NEXT: "id": "0x{{.*}}", 794 // CHECK-NEXT: "kind": "ParmVarDecl", 795 // CHECK-NEXT: "name": "x", 796 // CHECK-NEXT: "type": { 797 // CHECK-NEXT: "qualType": "unsigned int" 798 // CHECK-NEXT: } 799 // CHECK-NEXT: } 800 // CHECK-NEXT: } 801 // CHECK-NEXT: ] 802 // CHECK-NEXT: } 803 // CHECK-NEXT: ] 804 // CHECK-NEXT: } 805 // CHECK-NEXT: ] 806 // CHECK-NEXT: } 807 808 809 // CHECK: "kind": "CXXStaticCastExpr", 810 // CHECK-NEXT: "range": { 811 // CHECK-NEXT: "begin": { 812 // CHECK-NEXT: "col": 10, 813 // CHECK-NEXT: "tokLen": 11 814 // CHECK-NEXT: }, 815 // CHECK-NEXT: "end": { 816 // CHECK-NEXT: "col": 36, 817 // CHECK-NEXT: "tokLen": 1 818 // CHECK-NEXT: } 819 // CHECK-NEXT: }, 820 // CHECK-NEXT: "type": { 821 // CHECK-NEXT: "qualType": "signed char" 822 // CHECK-NEXT: }, 823 // CHECK-NEXT: "valueCategory": "rvalue", 824 // CHECK-NEXT: "castKind": "NoOp", 825 // CHECK-NEXT: "inner": [ 826 // CHECK-NEXT: { 827 // CHECK-NEXT: "id": "0x{{.*}}", 828 // CHECK-NEXT: "kind": "ImplicitCastExpr", 829 // CHECK-NEXT: "range": { 830 // CHECK-NEXT: "begin": { 831 // CHECK-NEXT: "col": 35, 832 // CHECK-NEXT: "tokLen": 1 833 // CHECK-NEXT: }, 834 // CHECK-NEXT: "end": { 835 // CHECK-NEXT: "col": 35, 836 // CHECK-NEXT: "tokLen": 1 837 // CHECK-NEXT: } 838 // CHECK-NEXT: }, 839 // CHECK-NEXT: "type": { 840 // CHECK-NEXT: "qualType": "signed char" 841 // CHECK-NEXT: }, 842 // CHECK-NEXT: "valueCategory": "rvalue", 843 // CHECK-NEXT: "castKind": "IntegralCast", 844 // CHECK-NEXT: "isPartOfExplicitCast": true, 845 // CHECK-NEXT: "inner": [ 846 // CHECK-NEXT: { 847 // CHECK-NEXT: "id": "0x{{.*}}", 848 // CHECK-NEXT: "kind": "ImplicitCastExpr", 849 // CHECK-NEXT: "range": { 850 // CHECK-NEXT: "begin": { 851 // CHECK-NEXT: "col": 35, 852 // CHECK-NEXT: "tokLen": 1 853 // CHECK-NEXT: }, 854 // CHECK-NEXT: "end": { 855 // CHECK-NEXT: "col": 35, 856 // CHECK-NEXT: "tokLen": 1 857 // CHECK-NEXT: } 858 // CHECK-NEXT: }, 859 // CHECK-NEXT: "type": { 860 // CHECK-NEXT: "qualType": "unsigned int" 861 // CHECK-NEXT: }, 862 // CHECK-NEXT: "valueCategory": "rvalue", 863 // CHECK-NEXT: "castKind": "LValueToRValue", 864 // CHECK-NEXT: "isPartOfExplicitCast": true, 865 // CHECK-NEXT: "inner": [ 866 // CHECK-NEXT: { 867 // CHECK-NEXT: "id": "0x{{.*}}", 868 // CHECK-NEXT: "kind": "DeclRefExpr", 869 // CHECK-NEXT: "range": { 870 // CHECK-NEXT: "begin": { 871 // CHECK-NEXT: "col": 35, 872 // CHECK-NEXT: "tokLen": 1 873 // CHECK-NEXT: }, 874 // CHECK-NEXT: "end": { 875 // CHECK-NEXT: "col": 35, 876 // CHECK-NEXT: "tokLen": 1 877 // CHECK-NEXT: } 878 // CHECK-NEXT: }, 879 // CHECK-NEXT: "type": { 880 // CHECK-NEXT: "qualType": "unsigned int" 881 // CHECK-NEXT: }, 882 // CHECK-NEXT: "valueCategory": "lvalue", 883 // CHECK-NEXT: "referencedDecl": { 884 // CHECK-NEXT: "id": "0x{{.*}}", 885 // CHECK-NEXT: "kind": "ParmVarDecl", 886 // CHECK-NEXT: "name": "x", 887 // CHECK-NEXT: "type": { 888 // CHECK-NEXT: "qualType": "unsigned int" 889 // CHECK-NEXT: } 890 // CHECK-NEXT: } 891 // CHECK-NEXT: } 892 // CHECK-NEXT: ] 893 // CHECK-NEXT: } 894 // CHECK-NEXT: ] 895 // CHECK-NEXT: } 896 // CHECK-NEXT: ] 897 // CHECK-NEXT: } 898 899 900 // CHECK: "kind": "CXXStaticCastExpr", 901 // CHECK-NEXT: "range": { 902 // CHECK-NEXT: "begin": { 903 // CHECK-NEXT: "col": 10, 904 // CHECK-NEXT: "tokLen": 11 905 // CHECK-NEXT: }, 906 // CHECK-NEXT: "end": { 907 // CHECK-NEXT: "col": 38, 908 // CHECK-NEXT: "tokLen": 1 909 // CHECK-NEXT: } 910 // CHECK-NEXT: }, 911 // CHECK-NEXT: "type": { 912 // CHECK-NEXT: "qualType": "unsigned char" 913 // CHECK-NEXT: }, 914 // CHECK-NEXT: "valueCategory": "rvalue", 915 // CHECK-NEXT: "castKind": "NoOp", 916 // CHECK-NEXT: "inner": [ 917 // CHECK-NEXT: { 918 // CHECK-NEXT: "id": "0x{{.*}}", 919 // CHECK-NEXT: "kind": "ImplicitCastExpr", 920 // CHECK-NEXT: "range": { 921 // CHECK-NEXT: "begin": { 922 // CHECK-NEXT: "col": 37, 923 // CHECK-NEXT: "tokLen": 1 924 // CHECK-NEXT: }, 925 // CHECK-NEXT: "end": { 926 // CHECK-NEXT: "col": 37, 927 // CHECK-NEXT: "tokLen": 1 928 // CHECK-NEXT: } 929 // CHECK-NEXT: }, 930 // CHECK-NEXT: "type": { 931 // CHECK-NEXT: "qualType": "unsigned char" 932 // CHECK-NEXT: }, 933 // CHECK-NEXT: "valueCategory": "rvalue", 934 // CHECK-NEXT: "castKind": "IntegralCast", 935 // CHECK-NEXT: "isPartOfExplicitCast": true, 936 // CHECK-NEXT: "inner": [ 937 // CHECK-NEXT: { 938 // CHECK-NEXT: "id": "0x{{.*}}", 939 // CHECK-NEXT: "kind": "ImplicitCastExpr", 940 // CHECK-NEXT: "range": { 941 // CHECK-NEXT: "begin": { 942 // CHECK-NEXT: "col": 37, 943 // CHECK-NEXT: "tokLen": 1 944 // CHECK-NEXT: }, 945 // CHECK-NEXT: "end": { 946 // CHECK-NEXT: "col": 37, 947 // CHECK-NEXT: "tokLen": 1 948 // CHECK-NEXT: } 949 // CHECK-NEXT: }, 950 // CHECK-NEXT: "type": { 951 // CHECK-NEXT: "qualType": "int" 952 // CHECK-NEXT: }, 953 // CHECK-NEXT: "valueCategory": "rvalue", 954 // CHECK-NEXT: "castKind": "LValueToRValue", 955 // CHECK-NEXT: "isPartOfExplicitCast": true, 956 // CHECK-NEXT: "inner": [ 957 // CHECK-NEXT: { 958 // CHECK-NEXT: "id": "0x{{.*}}", 959 // CHECK-NEXT: "kind": "DeclRefExpr", 960 // CHECK-NEXT: "range": { 961 // CHECK-NEXT: "begin": { 962 // CHECK-NEXT: "col": 37, 963 // CHECK-NEXT: "tokLen": 1 964 // CHECK-NEXT: }, 965 // CHECK-NEXT: "end": { 966 // CHECK-NEXT: "col": 37, 967 // CHECK-NEXT: "tokLen": 1 968 // CHECK-NEXT: } 969 // CHECK-NEXT: }, 970 // CHECK-NEXT: "type": { 971 // CHECK-NEXT: "qualType": "int" 972 // CHECK-NEXT: }, 973 // CHECK-NEXT: "valueCategory": "lvalue", 974 // CHECK-NEXT: "referencedDecl": { 975 // CHECK-NEXT: "id": "0x{{.*}}", 976 // CHECK-NEXT: "kind": "ParmVarDecl", 977 // CHECK-NEXT: "name": "x", 978 // CHECK-NEXT: "type": { 979 // CHECK-NEXT: "qualType": "int" 980 // CHECK-NEXT: } 981 // CHECK-NEXT: } 982 // CHECK-NEXT: } 983 // CHECK-NEXT: ] 984 // CHECK-NEXT: } 985 // CHECK-NEXT: ] 986 // CHECK-NEXT: } 987 // CHECK-NEXT: ] 988 // CHECK-NEXT: } 989 990 991 // CHECK: "kind": "CXXStaticCastExpr", 992 // CHECK-NEXT: "range": { 993 // CHECK-NEXT: "begin": { 994 // CHECK-NEXT: "col": 10, 995 // CHECK-NEXT: "tokLen": 11 996 // CHECK-NEXT: }, 997 // CHECK-NEXT: "end": { 998 // CHECK-NEXT: "col": 36, 999 // CHECK-NEXT: "tokLen": 1 1000 // CHECK-NEXT: } 1001 // CHECK-NEXT: }, 1002 // CHECK-NEXT: "type": { 1003 // CHECK-NEXT: "qualType": "signed char" 1004 // CHECK-NEXT: }, 1005 // CHECK-NEXT: "valueCategory": "rvalue", 1006 // CHECK-NEXT: "castKind": "NoOp", 1007 // CHECK-NEXT: "inner": [ 1008 // CHECK-NEXT: { 1009 // CHECK-NEXT: "id": "0x{{.*}}", 1010 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1011 // CHECK-NEXT: "range": { 1012 // CHECK-NEXT: "begin": { 1013 // CHECK-NEXT: "col": 35, 1014 // CHECK-NEXT: "tokLen": 1 1015 // CHECK-NEXT: }, 1016 // CHECK-NEXT: "end": { 1017 // CHECK-NEXT: "col": 35, 1018 // CHECK-NEXT: "tokLen": 1 1019 // CHECK-NEXT: } 1020 // CHECK-NEXT: }, 1021 // CHECK-NEXT: "type": { 1022 // CHECK-NEXT: "qualType": "signed char" 1023 // CHECK-NEXT: }, 1024 // CHECK-NEXT: "valueCategory": "rvalue", 1025 // CHECK-NEXT: "castKind": "IntegralCast", 1026 // CHECK-NEXT: "isPartOfExplicitCast": true, 1027 // CHECK-NEXT: "inner": [ 1028 // CHECK-NEXT: { 1029 // CHECK-NEXT: "id": "0x{{.*}}", 1030 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1031 // CHECK-NEXT: "range": { 1032 // CHECK-NEXT: "begin": { 1033 // CHECK-NEXT: "col": 35, 1034 // CHECK-NEXT: "tokLen": 1 1035 // CHECK-NEXT: }, 1036 // CHECK-NEXT: "end": { 1037 // CHECK-NEXT: "col": 35, 1038 // CHECK-NEXT: "tokLen": 1 1039 // CHECK-NEXT: } 1040 // CHECK-NEXT: }, 1041 // CHECK-NEXT: "type": { 1042 // CHECK-NEXT: "qualType": "int" 1043 // CHECK-NEXT: }, 1044 // CHECK-NEXT: "valueCategory": "rvalue", 1045 // CHECK-NEXT: "castKind": "LValueToRValue", 1046 // CHECK-NEXT: "isPartOfExplicitCast": true, 1047 // CHECK-NEXT: "inner": [ 1048 // CHECK-NEXT: { 1049 // CHECK-NEXT: "id": "0x{{.*}}", 1050 // CHECK-NEXT: "kind": "DeclRefExpr", 1051 // CHECK-NEXT: "range": { 1052 // CHECK-NEXT: "begin": { 1053 // CHECK-NEXT: "col": 35, 1054 // CHECK-NEXT: "tokLen": 1 1055 // CHECK-NEXT: }, 1056 // CHECK-NEXT: "end": { 1057 // CHECK-NEXT: "col": 35, 1058 // CHECK-NEXT: "tokLen": 1 1059 // CHECK-NEXT: } 1060 // CHECK-NEXT: }, 1061 // CHECK-NEXT: "type": { 1062 // CHECK-NEXT: "qualType": "int" 1063 // CHECK-NEXT: }, 1064 // CHECK-NEXT: "valueCategory": "lvalue", 1065 // CHECK-NEXT: "referencedDecl": { 1066 // CHECK-NEXT: "id": "0x{{.*}}", 1067 // CHECK-NEXT: "kind": "ParmVarDecl", 1068 // CHECK-NEXT: "name": "x", 1069 // CHECK-NEXT: "type": { 1070 // CHECK-NEXT: "qualType": "int" 1071 // CHECK-NEXT: } 1072 // CHECK-NEXT: } 1073 // CHECK-NEXT: } 1074 // CHECK-NEXT: ] 1075 // CHECK-NEXT: } 1076 // CHECK-NEXT: ] 1077 // CHECK-NEXT: } 1078 // CHECK-NEXT: ] 1079 // CHECK-NEXT: } 1080 1081 1082 // CHECK: "kind": "CXXFunctionalCastExpr", 1083 // CHECK-NEXT: "range": { 1084 // CHECK-NEXT: "begin": { 1085 // CHECK-NEXT: "col": 10, 1086 // CHECK-NEXT: "tokLen": 12 1087 // CHECK-NEXT: }, 1088 // CHECK-NEXT: "end": { 1089 // CHECK-NEXT: "col": 24, 1090 // CHECK-NEXT: "tokLen": 1 1091 // CHECK-NEXT: } 1092 // CHECK-NEXT: }, 1093 // CHECK-NEXT: "type": { 1094 // CHECK-NEXT: "desugaredQualType": "unsigned char", 1095 // CHECK-NEXT: "qualType": "UnsignedChar" 1096 // CHECK-NEXT: }, 1097 // CHECK-NEXT: "valueCategory": "rvalue", 1098 // CHECK-NEXT: "castKind": "NoOp", 1099 // CHECK-NEXT: "inner": [ 1100 // CHECK-NEXT: { 1101 // CHECK-NEXT: "id": "0x{{.*}}", 1102 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1103 // CHECK-NEXT: "range": { 1104 // CHECK-NEXT: "begin": { 1105 // CHECK-NEXT: "col": 23, 1106 // CHECK-NEXT: "tokLen": 1 1107 // CHECK-NEXT: }, 1108 // CHECK-NEXT: "end": { 1109 // CHECK-NEXT: "col": 23, 1110 // CHECK-NEXT: "tokLen": 1 1111 // CHECK-NEXT: } 1112 // CHECK-NEXT: }, 1113 // CHECK-NEXT: "type": { 1114 // CHECK-NEXT: "desugaredQualType": "unsigned char", 1115 // CHECK-NEXT: "qualType": "UnsignedChar" 1116 // CHECK-NEXT: }, 1117 // CHECK-NEXT: "valueCategory": "rvalue", 1118 // CHECK-NEXT: "castKind": "IntegralCast", 1119 // CHECK-NEXT: "isPartOfExplicitCast": true, 1120 // CHECK-NEXT: "inner": [ 1121 // CHECK-NEXT: { 1122 // CHECK-NEXT: "id": "0x{{.*}}", 1123 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1124 // CHECK-NEXT: "range": { 1125 // CHECK-NEXT: "begin": { 1126 // CHECK-NEXT: "col": 23, 1127 // CHECK-NEXT: "tokLen": 1 1128 // CHECK-NEXT: }, 1129 // CHECK-NEXT: "end": { 1130 // CHECK-NEXT: "col": 23, 1131 // CHECK-NEXT: "tokLen": 1 1132 // CHECK-NEXT: } 1133 // CHECK-NEXT: }, 1134 // CHECK-NEXT: "type": { 1135 // CHECK-NEXT: "desugaredQualType": "unsigned int", 1136 // CHECK-NEXT: "qualType": "UnsignedInt" 1137 // CHECK-NEXT: }, 1138 // CHECK-NEXT: "valueCategory": "rvalue", 1139 // CHECK-NEXT: "castKind": "LValueToRValue", 1140 // CHECK-NEXT: "isPartOfExplicitCast": true, 1141 // CHECK-NEXT: "inner": [ 1142 // CHECK-NEXT: { 1143 // CHECK-NEXT: "id": "0x{{.*}}", 1144 // CHECK-NEXT: "kind": "DeclRefExpr", 1145 // CHECK-NEXT: "range": { 1146 // CHECK-NEXT: "begin": { 1147 // CHECK-NEXT: "col": 23, 1148 // CHECK-NEXT: "tokLen": 1 1149 // CHECK-NEXT: }, 1150 // CHECK-NEXT: "end": { 1151 // CHECK-NEXT: "col": 23, 1152 // CHECK-NEXT: "tokLen": 1 1153 // CHECK-NEXT: } 1154 // CHECK-NEXT: }, 1155 // CHECK-NEXT: "type": { 1156 // CHECK-NEXT: "desugaredQualType": "unsigned int", 1157 // CHECK-NEXT: "qualType": "UnsignedInt" 1158 // CHECK-NEXT: }, 1159 // CHECK-NEXT: "valueCategory": "lvalue", 1160 // CHECK-NEXT: "referencedDecl": { 1161 // CHECK-NEXT: "id": "0x{{.*}}", 1162 // CHECK-NEXT: "kind": "ParmVarDecl", 1163 // CHECK-NEXT: "name": "x", 1164 // CHECK-NEXT: "type": { 1165 // CHECK-NEXT: "desugaredQualType": "unsigned int", 1166 // CHECK-NEXT: "qualType": "UnsignedInt" 1167 // CHECK-NEXT: } 1168 // CHECK-NEXT: } 1169 // CHECK-NEXT: } 1170 // CHECK-NEXT: ] 1171 // CHECK-NEXT: } 1172 // CHECK-NEXT: ] 1173 // CHECK-NEXT: } 1174 // CHECK-NEXT: ] 1175 // CHECK-NEXT: } 1176 1177 1178 // CHECK: "kind": "CXXFunctionalCastExpr", 1179 // CHECK-NEXT: "range": { 1180 // CHECK-NEXT: "begin": { 1181 // CHECK-NEXT: "col": 10, 1182 // CHECK-NEXT: "tokLen": 10 1183 // CHECK-NEXT: }, 1184 // CHECK-NEXT: "end": { 1185 // CHECK-NEXT: "col": 22, 1186 // CHECK-NEXT: "tokLen": 1 1187 // CHECK-NEXT: } 1188 // CHECK-NEXT: }, 1189 // CHECK-NEXT: "type": { 1190 // CHECK-NEXT: "desugaredQualType": "signed char", 1191 // CHECK-NEXT: "qualType": "SignedChar" 1192 // CHECK-NEXT: }, 1193 // CHECK-NEXT: "valueCategory": "rvalue", 1194 // CHECK-NEXT: "castKind": "NoOp", 1195 // CHECK-NEXT: "inner": [ 1196 // CHECK-NEXT: { 1197 // CHECK-NEXT: "id": "0x{{.*}}", 1198 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1199 // CHECK-NEXT: "range": { 1200 // CHECK-NEXT: "begin": { 1201 // CHECK-NEXT: "col": 21, 1202 // CHECK-NEXT: "tokLen": 1 1203 // CHECK-NEXT: }, 1204 // CHECK-NEXT: "end": { 1205 // CHECK-NEXT: "col": 21, 1206 // CHECK-NEXT: "tokLen": 1 1207 // CHECK-NEXT: } 1208 // CHECK-NEXT: }, 1209 // CHECK-NEXT: "type": { 1210 // CHECK-NEXT: "desugaredQualType": "signed char", 1211 // CHECK-NEXT: "qualType": "SignedChar" 1212 // CHECK-NEXT: }, 1213 // CHECK-NEXT: "valueCategory": "rvalue", 1214 // CHECK-NEXT: "castKind": "IntegralCast", 1215 // CHECK-NEXT: "isPartOfExplicitCast": true, 1216 // CHECK-NEXT: "inner": [ 1217 // CHECK-NEXT: { 1218 // CHECK-NEXT: "id": "0x{{.*}}", 1219 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1220 // CHECK-NEXT: "range": { 1221 // CHECK-NEXT: "begin": { 1222 // CHECK-NEXT: "col": 21, 1223 // CHECK-NEXT: "tokLen": 1 1224 // CHECK-NEXT: }, 1225 // CHECK-NEXT: "end": { 1226 // CHECK-NEXT: "col": 21, 1227 // CHECK-NEXT: "tokLen": 1 1228 // CHECK-NEXT: } 1229 // CHECK-NEXT: }, 1230 // CHECK-NEXT: "type": { 1231 // CHECK-NEXT: "desugaredQualType": "unsigned int", 1232 // CHECK-NEXT: "qualType": "UnsignedInt" 1233 // CHECK-NEXT: }, 1234 // CHECK-NEXT: "valueCategory": "rvalue", 1235 // CHECK-NEXT: "castKind": "LValueToRValue", 1236 // CHECK-NEXT: "isPartOfExplicitCast": true, 1237 // CHECK-NEXT: "inner": [ 1238 // CHECK-NEXT: { 1239 // CHECK-NEXT: "id": "0x{{.*}}", 1240 // CHECK-NEXT: "kind": "DeclRefExpr", 1241 // CHECK-NEXT: "range": { 1242 // CHECK-NEXT: "begin": { 1243 // CHECK-NEXT: "col": 21, 1244 // CHECK-NEXT: "tokLen": 1 1245 // CHECK-NEXT: }, 1246 // CHECK-NEXT: "end": { 1247 // CHECK-NEXT: "col": 21, 1248 // CHECK-NEXT: "tokLen": 1 1249 // CHECK-NEXT: } 1250 // CHECK-NEXT: }, 1251 // CHECK-NEXT: "type": { 1252 // CHECK-NEXT: "desugaredQualType": "unsigned int", 1253 // CHECK-NEXT: "qualType": "UnsignedInt" 1254 // CHECK-NEXT: }, 1255 // CHECK-NEXT: "valueCategory": "lvalue", 1256 // CHECK-NEXT: "referencedDecl": { 1257 // CHECK-NEXT: "id": "0x{{.*}}", 1258 // CHECK-NEXT: "kind": "ParmVarDecl", 1259 // CHECK-NEXT: "name": "x", 1260 // CHECK-NEXT: "type": { 1261 // CHECK-NEXT: "desugaredQualType": "unsigned int", 1262 // CHECK-NEXT: "qualType": "UnsignedInt" 1263 // CHECK-NEXT: } 1264 // CHECK-NEXT: } 1265 // CHECK-NEXT: } 1266 // CHECK-NEXT: ] 1267 // CHECK-NEXT: } 1268 // CHECK-NEXT: ] 1269 // CHECK-NEXT: } 1270 // CHECK-NEXT: ] 1271 // CHECK-NEXT: } 1272 1273 1274 // CHECK: "kind": "CXXFunctionalCastExpr", 1275 // CHECK-NEXT: "range": { 1276 // CHECK-NEXT: "begin": { 1277 // CHECK-NEXT: "col": 10, 1278 // CHECK-NEXT: "tokLen": 12 1279 // CHECK-NEXT: }, 1280 // CHECK-NEXT: "end": { 1281 // CHECK-NEXT: "col": 24, 1282 // CHECK-NEXT: "tokLen": 1 1283 // CHECK-NEXT: } 1284 // CHECK-NEXT: }, 1285 // CHECK-NEXT: "type": { 1286 // CHECK-NEXT: "desugaredQualType": "unsigned char", 1287 // CHECK-NEXT: "qualType": "UnsignedChar" 1288 // CHECK-NEXT: }, 1289 // CHECK-NEXT: "valueCategory": "rvalue", 1290 // CHECK-NEXT: "castKind": "NoOp", 1291 // CHECK-NEXT: "inner": [ 1292 // CHECK-NEXT: { 1293 // CHECK-NEXT: "id": "0x{{.*}}", 1294 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1295 // CHECK-NEXT: "range": { 1296 // CHECK-NEXT: "begin": { 1297 // CHECK-NEXT: "col": 23, 1298 // CHECK-NEXT: "tokLen": 1 1299 // CHECK-NEXT: }, 1300 // CHECK-NEXT: "end": { 1301 // CHECK-NEXT: "col": 23, 1302 // CHECK-NEXT: "tokLen": 1 1303 // CHECK-NEXT: } 1304 // CHECK-NEXT: }, 1305 // CHECK-NEXT: "type": { 1306 // CHECK-NEXT: "desugaredQualType": "unsigned char", 1307 // CHECK-NEXT: "qualType": "UnsignedChar" 1308 // CHECK-NEXT: }, 1309 // CHECK-NEXT: "valueCategory": "rvalue", 1310 // CHECK-NEXT: "castKind": "IntegralCast", 1311 // CHECK-NEXT: "isPartOfExplicitCast": true, 1312 // CHECK-NEXT: "inner": [ 1313 // CHECK-NEXT: { 1314 // CHECK-NEXT: "id": "0x{{.*}}", 1315 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1316 // CHECK-NEXT: "range": { 1317 // CHECK-NEXT: "begin": { 1318 // CHECK-NEXT: "col": 23, 1319 // CHECK-NEXT: "tokLen": 1 1320 // CHECK-NEXT: }, 1321 // CHECK-NEXT: "end": { 1322 // CHECK-NEXT: "col": 23, 1323 // CHECK-NEXT: "tokLen": 1 1324 // CHECK-NEXT: } 1325 // CHECK-NEXT: }, 1326 // CHECK-NEXT: "type": { 1327 // CHECK-NEXT: "desugaredQualType": "int", 1328 // CHECK-NEXT: "qualType": "SignedInt" 1329 // CHECK-NEXT: }, 1330 // CHECK-NEXT: "valueCategory": "rvalue", 1331 // CHECK-NEXT: "castKind": "LValueToRValue", 1332 // CHECK-NEXT: "isPartOfExplicitCast": true, 1333 // CHECK-NEXT: "inner": [ 1334 // CHECK-NEXT: { 1335 // CHECK-NEXT: "id": "0x{{.*}}", 1336 // CHECK-NEXT: "kind": "DeclRefExpr", 1337 // CHECK-NEXT: "range": { 1338 // CHECK-NEXT: "begin": { 1339 // CHECK-NEXT: "col": 23, 1340 // CHECK-NEXT: "tokLen": 1 1341 // CHECK-NEXT: }, 1342 // CHECK-NEXT: "end": { 1343 // CHECK-NEXT: "col": 23, 1344 // CHECK-NEXT: "tokLen": 1 1345 // CHECK-NEXT: } 1346 // CHECK-NEXT: }, 1347 // CHECK-NEXT: "type": { 1348 // CHECK-NEXT: "desugaredQualType": "int", 1349 // CHECK-NEXT: "qualType": "SignedInt" 1350 // CHECK-NEXT: }, 1351 // CHECK-NEXT: "valueCategory": "lvalue", 1352 // CHECK-NEXT: "referencedDecl": { 1353 // CHECK-NEXT: "id": "0x{{.*}}", 1354 // CHECK-NEXT: "kind": "ParmVarDecl", 1355 // CHECK-NEXT: "name": "x", 1356 // CHECK-NEXT: "type": { 1357 // CHECK-NEXT: "desugaredQualType": "int", 1358 // CHECK-NEXT: "qualType": "SignedInt" 1359 // CHECK-NEXT: } 1360 // CHECK-NEXT: } 1361 // CHECK-NEXT: } 1362 // CHECK-NEXT: ] 1363 // CHECK-NEXT: } 1364 // CHECK-NEXT: ] 1365 // CHECK-NEXT: } 1366 // CHECK-NEXT: ] 1367 // CHECK-NEXT: } 1368 1369 1370 // CHECK: "kind": "CXXFunctionalCastExpr", 1371 // CHECK-NEXT: "range": { 1372 // CHECK-NEXT: "begin": { 1373 // CHECK-NEXT: "col": 10, 1374 // CHECK-NEXT: "tokLen": 10 1375 // CHECK-NEXT: }, 1376 // CHECK-NEXT: "end": { 1377 // CHECK-NEXT: "col": 22, 1378 // CHECK-NEXT: "tokLen": 1 1379 // CHECK-NEXT: } 1380 // CHECK-NEXT: }, 1381 // CHECK-NEXT: "type": { 1382 // CHECK-NEXT: "desugaredQualType": "signed char", 1383 // CHECK-NEXT: "qualType": "SignedChar" 1384 // CHECK-NEXT: }, 1385 // CHECK-NEXT: "valueCategory": "rvalue", 1386 // CHECK-NEXT: "castKind": "NoOp", 1387 // CHECK-NEXT: "inner": [ 1388 // CHECK-NEXT: { 1389 // CHECK-NEXT: "id": "0x{{.*}}", 1390 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1391 // CHECK-NEXT: "range": { 1392 // CHECK-NEXT: "begin": { 1393 // CHECK-NEXT: "col": 21, 1394 // CHECK-NEXT: "tokLen": 1 1395 // CHECK-NEXT: }, 1396 // CHECK-NEXT: "end": { 1397 // CHECK-NEXT: "col": 21, 1398 // CHECK-NEXT: "tokLen": 1 1399 // CHECK-NEXT: } 1400 // CHECK-NEXT: }, 1401 // CHECK-NEXT: "type": { 1402 // CHECK-NEXT: "desugaredQualType": "signed char", 1403 // CHECK-NEXT: "qualType": "SignedChar" 1404 // CHECK-NEXT: }, 1405 // CHECK-NEXT: "valueCategory": "rvalue", 1406 // CHECK-NEXT: "castKind": "IntegralCast", 1407 // CHECK-NEXT: "isPartOfExplicitCast": true, 1408 // CHECK-NEXT: "inner": [ 1409 // CHECK-NEXT: { 1410 // CHECK-NEXT: "id": "0x{{.*}}", 1411 // CHECK-NEXT: "kind": "ImplicitCastExpr", 1412 // CHECK-NEXT: "range": { 1413 // CHECK-NEXT: "begin": { 1414 // CHECK-NEXT: "col": 21, 1415 // CHECK-NEXT: "tokLen": 1 1416 // CHECK-NEXT: }, 1417 // CHECK-NEXT: "end": { 1418 // CHECK-NEXT: "col": 21, 1419 // CHECK-NEXT: "tokLen": 1 1420 // CHECK-NEXT: } 1421 // CHECK-NEXT: }, 1422 // CHECK-NEXT: "type": { 1423 // CHECK-NEXT: "desugaredQualType": "int", 1424 // CHECK-NEXT: "qualType": "SignedInt" 1425 // CHECK-NEXT: }, 1426 // CHECK-NEXT: "valueCategory": "rvalue", 1427 // CHECK-NEXT: "castKind": "LValueToRValue", 1428 // CHECK-NEXT: "isPartOfExplicitCast": true, 1429 // CHECK-NEXT: "inner": [ 1430 // CHECK-NEXT: { 1431 // CHECK-NEXT: "id": "0x{{.*}}", 1432 // CHECK-NEXT: "kind": "DeclRefExpr", 1433 // CHECK-NEXT: "range": { 1434 // CHECK-NEXT: "begin": { 1435 // CHECK-NEXT: "col": 21, 1436 // CHECK-NEXT: "tokLen": 1 1437 // CHECK-NEXT: }, 1438 // CHECK-NEXT: "end": { 1439 // CHECK-NEXT: "col": 21, 1440 // CHECK-NEXT: "tokLen": 1 1441 // CHECK-NEXT: } 1442 // CHECK-NEXT: }, 1443 // CHECK-NEXT: "type": { 1444 // CHECK-NEXT: "desugaredQualType": "int", 1445 // CHECK-NEXT: "qualType": "SignedInt" 1446 // CHECK-NEXT: }, 1447 // CHECK-NEXT: "valueCategory": "lvalue", 1448 // CHECK-NEXT: "referencedDecl": { 1449 // CHECK-NEXT: "id": "0x{{.*}}", 1450 // CHECK-NEXT: "kind": "ParmVarDecl", 1451 // CHECK-NEXT: "name": "x", 1452 // CHECK-NEXT: "type": { 1453 // CHECK-NEXT: "desugaredQualType": "int", 1454 // CHECK-NEXT: "qualType": "SignedInt" 1455 // CHECK-NEXT: } 1456 // CHECK-NEXT: } 1457 // CHECK-NEXT: } 1458 // CHECK-NEXT: ] 1459 // CHECK-NEXT: } 1460 // CHECK-NEXT: ] 1461 // CHECK-NEXT: } 1462 // CHECK-NEXT: ] 1463 // CHECK-NEXT: } 1464