1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -std=gnu11 -ast-dump=json %s | FileCheck %s
2 
Comma(void)3 void Comma(void) {
4   1, 2, 3;
5 }
6 
Assignment(int a)7 void Assignment(int a) {
8   a = 12;
9   a += a;
10 }
11 
Conditionals(int a)12 void Conditionals(int a) {
13   a ? 0 : 1;
14   a ?: 0;
15 }
16 
BinaryOperators(int a,int b)17 void BinaryOperators(int a, int b) {
18   // Logical operators
19   a || b;
20   a && b;
21 
22   // Bitwise operators
23   a | b;
24   a ^ b;
25   a & b;
26 
27   // Equality operators
28   a == b;
29   a != b;
30 
31   // Relational operators
32   a < b;
33   a > b;
34   a <= b;
35   a >= b;
36 
37   // Bit shifting operators
38   a << b;
39   a >> b;
40 
41   // Additive operators
42   a + b;
43   a - b;
44 
45   // Multiplicative operators
46   a * b;
47   a / b;
48   a % b;
49 }
50 
UnaryOperators(int a,int * b)51 void UnaryOperators(int a, int *b) {
52   // Cast operators
53   (float)a;
54 
55   // ++, --, and ~ are covered elsewhere.
56 
57   -a;
58   +a;
59   &a;
60   *b;
61   !a;
62 
63   sizeof a;
64   sizeof(int);
65   _Alignof(int);
66 }
67 
68 struct S {
69   int a;
70 };
71 
PostfixOperators(int * a,struct S b,struct S * c)72 void PostfixOperators(int *a, struct S b, struct S *c) {
73   a[0];
74   UnaryOperators(*a, a);
75 
76   b.a;
77   c->a;
78 
79   // Postfix ++ and -- are covered elsewhere.
80 
81   (int [4]){1, 2, 3, 4, };
82   (struct S){1};
83 }
84 
85 enum E { One };
86 
PrimaryExpressions(int a)87 void PrimaryExpressions(int a) {
88   a;
89   'a';
90   L'a';
91   "a";
92   L"a";
93   u8"a";
94   U"a";
95   u"a";
96 
97   1;
98   1u;
99   1ll;
100   1.0;
101   1.0f;
102   0xFp100000000000000000000F;
103   1.0l;
104   One;
105 
106   (a);
107 }
108 
109 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
110 // using --filters=FunctionDecl
111 
112 
113 // CHECK:  "kind": "FunctionDecl",
114 // CHECK-NEXT:  "loc": {
115 // CHECK-NEXT:   "offset": 120,
116 // CHECK-NEXT:   "file": "{{.*}}",
117 // CHECK-NEXT:   "line": 3,
118 // CHECK-NEXT:   "col": 6,
119 // CHECK-NEXT:   "tokLen": 5
120 // CHECK-NEXT:  },
121 // CHECK-NEXT:  "range": {
122 // CHECK-NEXT:   "begin": {
123 // CHECK-NEXT:    "offset": 115,
124 // CHECK-NEXT:    "col": 1,
125 // CHECK-NEXT:    "tokLen": 4
126 // CHECK-NEXT:   },
127 // CHECK-NEXT:   "end": {
128 // CHECK-NEXT:    "offset": 147,
129 // CHECK-NEXT:    "line": 5,
130 // CHECK-NEXT:    "col": 1,
131 // CHECK-NEXT:    "tokLen": 1
132 // CHECK-NEXT:   }
133 // CHECK-NEXT:  },
134 // CHECK-NEXT:  "name": "Comma",
135 // CHECK-NEXT:  "mangledName": "Comma",
136 // CHECK-NEXT:  "type": {
137 // CHECK-NEXT:   "qualType": "void (void)"
138 // CHECK-NEXT:  },
139 // CHECK-NEXT:  "inner": [
140 // CHECK-NEXT:   {
141 // CHECK-NEXT:    "id": "0x{{.*}}",
142 // CHECK-NEXT:    "kind": "CompoundStmt",
143 // CHECK-NEXT:    "range": {
144 // CHECK-NEXT:     "begin": {
145 // CHECK-NEXT:      "offset": 132,
146 // CHECK-NEXT:      "line": 3,
147 // CHECK-NEXT:      "col": 18,
148 // CHECK-NEXT:      "tokLen": 1
149 // CHECK-NEXT:     },
150 // CHECK-NEXT:     "end": {
151 // CHECK-NEXT:      "offset": 147,
152 // CHECK-NEXT:      "line": 5,
153 // CHECK-NEXT:      "col": 1,
154 // CHECK-NEXT:      "tokLen": 1
155 // CHECK-NEXT:     }
156 // CHECK-NEXT:    },
157 // CHECK-NEXT:    "inner": [
158 // CHECK-NEXT:     {
159 // CHECK-NEXT:      "id": "0x{{.*}}",
160 // CHECK-NEXT:      "kind": "BinaryOperator",
161 // CHECK-NEXT:      "range": {
162 // CHECK-NEXT:       "begin": {
163 // CHECK-NEXT:        "offset": 137,
164 // CHECK-NEXT:        "line": 4,
165 // CHECK-NEXT:        "col": 3,
166 // CHECK-NEXT:        "tokLen": 1
167 // CHECK-NEXT:       },
168 // CHECK-NEXT:       "end": {
169 // CHECK-NEXT:        "offset": 143,
170 // CHECK-NEXT:        "col": 9,
171 // CHECK-NEXT:        "tokLen": 1
172 // CHECK-NEXT:       }
173 // CHECK-NEXT:      },
174 // CHECK-NEXT:      "type": {
175 // CHECK-NEXT:       "qualType": "int"
176 // CHECK-NEXT:      },
177 // CHECK-NEXT:      "valueCategory": "rvalue",
178 // CHECK-NEXT:      "opcode": ",",
179 // CHECK-NEXT:      "inner": [
180 // CHECK-NEXT:       {
181 // CHECK-NEXT:        "id": "0x{{.*}}",
182 // CHECK-NEXT:        "kind": "BinaryOperator",
183 // CHECK-NEXT:        "range": {
184 // CHECK-NEXT:         "begin": {
185 // CHECK-NEXT:          "offset": 137,
186 // CHECK-NEXT:          "col": 3,
187 // CHECK-NEXT:          "tokLen": 1
188 // CHECK-NEXT:         },
189 // CHECK-NEXT:         "end": {
190 // CHECK-NEXT:          "offset": 140,
191 // CHECK-NEXT:          "col": 6,
192 // CHECK-NEXT:          "tokLen": 1
193 // CHECK-NEXT:         }
194 // CHECK-NEXT:        },
195 // CHECK-NEXT:        "type": {
196 // CHECK-NEXT:         "qualType": "int"
197 // CHECK-NEXT:        },
198 // CHECK-NEXT:        "valueCategory": "rvalue",
199 // CHECK-NEXT:        "opcode": ",",
200 // CHECK-NEXT:        "inner": [
201 // CHECK-NEXT:         {
202 // CHECK-NEXT:          "id": "0x{{.*}}",
203 // CHECK-NEXT:          "kind": "IntegerLiteral",
204 // CHECK-NEXT:          "range": {
205 // CHECK-NEXT:           "begin": {
206 // CHECK-NEXT:            "offset": 137,
207 // CHECK-NEXT:            "col": 3,
208 // CHECK-NEXT:            "tokLen": 1
209 // CHECK-NEXT:           },
210 // CHECK-NEXT:           "end": {
211 // CHECK-NEXT:            "offset": 137,
212 // CHECK-NEXT:            "col": 3,
213 // CHECK-NEXT:            "tokLen": 1
214 // CHECK-NEXT:           }
215 // CHECK-NEXT:          },
216 // CHECK-NEXT:          "type": {
217 // CHECK-NEXT:           "qualType": "int"
218 // CHECK-NEXT:          },
219 // CHECK-NEXT:          "valueCategory": "rvalue",
220 // CHECK-NEXT:          "value": "1"
221 // CHECK-NEXT:         },
222 // CHECK-NEXT:         {
223 // CHECK-NEXT:          "id": "0x{{.*}}",
224 // CHECK-NEXT:          "kind": "IntegerLiteral",
225 // CHECK-NEXT:          "range": {
226 // CHECK-NEXT:           "begin": {
227 // CHECK-NEXT:            "offset": 140,
228 // CHECK-NEXT:            "col": 6,
229 // CHECK-NEXT:            "tokLen": 1
230 // CHECK-NEXT:           },
231 // CHECK-NEXT:           "end": {
232 // CHECK-NEXT:            "offset": 140,
233 // CHECK-NEXT:            "col": 6,
234 // CHECK-NEXT:            "tokLen": 1
235 // CHECK-NEXT:           }
236 // CHECK-NEXT:          },
237 // CHECK-NEXT:          "type": {
238 // CHECK-NEXT:           "qualType": "int"
239 // CHECK-NEXT:          },
240 // CHECK-NEXT:          "valueCategory": "rvalue",
241 // CHECK-NEXT:          "value": "2"
242 // CHECK-NEXT:         }
243 // CHECK-NEXT:        ]
244 // CHECK-NEXT:       },
245 // CHECK-NEXT:       {
246 // CHECK-NEXT:        "id": "0x{{.*}}",
247 // CHECK-NEXT:        "kind": "IntegerLiteral",
248 // CHECK-NEXT:        "range": {
249 // CHECK-NEXT:         "begin": {
250 // CHECK-NEXT:          "offset": 143,
251 // CHECK-NEXT:          "col": 9,
252 // CHECK-NEXT:          "tokLen": 1
253 // CHECK-NEXT:         },
254 // CHECK-NEXT:         "end": {
255 // CHECK-NEXT:          "offset": 143,
256 // CHECK-NEXT:          "col": 9,
257 // CHECK-NEXT:          "tokLen": 1
258 // CHECK-NEXT:         }
259 // CHECK-NEXT:        },
260 // CHECK-NEXT:        "type": {
261 // CHECK-NEXT:         "qualType": "int"
262 // CHECK-NEXT:        },
263 // CHECK-NEXT:        "valueCategory": "rvalue",
264 // CHECK-NEXT:        "value": "3"
265 // CHECK-NEXT:       }
266 // CHECK-NEXT:      ]
267 // CHECK-NEXT:     }
268 // CHECK-NEXT:    ]
269 // CHECK-NEXT:   }
270 // CHECK-NEXT:  ]
271 // CHECK-NEXT: }
272 
273 
274 // CHECK:  "kind": "FunctionDecl",
275 // CHECK-NEXT:  "loc": {
276 // CHECK-NEXT:   "offset": 157,
277 // CHECK-NEXT:   "line": 7,
278 // CHECK-NEXT:   "col": 6,
279 // CHECK-NEXT:   "tokLen": 10
280 // CHECK-NEXT:  },
281 // CHECK-NEXT:  "range": {
282 // CHECK-NEXT:   "begin": {
283 // CHECK-NEXT:    "offset": 152,
284 // CHECK-NEXT:    "col": 1,
285 // CHECK-NEXT:    "tokLen": 4
286 // CHECK-NEXT:   },
287 // CHECK-NEXT:   "end": {
288 // CHECK-NEXT:    "offset": 200,
289 // CHECK-NEXT:    "line": 10,
290 // CHECK-NEXT:    "col": 1,
291 // CHECK-NEXT:    "tokLen": 1
292 // CHECK-NEXT:   }
293 // CHECK-NEXT:  },
294 // CHECK-NEXT:  "name": "Assignment",
295 // CHECK-NEXT:  "mangledName": "Assignment",
296 // CHECK-NEXT:  "type": {
297 // CHECK-NEXT:   "qualType": "void (int)"
298 // CHECK-NEXT:  },
299 // CHECK-NEXT:  "inner": [
300 // CHECK-NEXT:   {
301 // CHECK-NEXT:    "id": "0x{{.*}}",
302 // CHECK-NEXT:    "kind": "ParmVarDecl",
303 // CHECK-NEXT:    "loc": {
304 // CHECK-NEXT:     "offset": 172,
305 // CHECK-NEXT:     "line": 7,
306 // CHECK-NEXT:     "col": 21,
307 // CHECK-NEXT:     "tokLen": 1
308 // CHECK-NEXT:    },
309 // CHECK-NEXT:    "range": {
310 // CHECK-NEXT:     "begin": {
311 // CHECK-NEXT:      "offset": 168,
312 // CHECK-NEXT:      "col": 17,
313 // CHECK-NEXT:      "tokLen": 3
314 // CHECK-NEXT:     },
315 // CHECK-NEXT:     "end": {
316 // CHECK-NEXT:      "offset": 172,
317 // CHECK-NEXT:      "col": 21,
318 // CHECK-NEXT:      "tokLen": 1
319 // CHECK-NEXT:     }
320 // CHECK-NEXT:    },
321 // CHECK-NEXT:    "isUsed": true,
322 // CHECK-NEXT:    "name": "a",
323 // CHECK-NEXT:    "mangledName": "a",
324 // CHECK-NEXT:    "type": {
325 // CHECK-NEXT:     "qualType": "int"
326 // CHECK-NEXT:    }
327 // CHECK-NEXT:   },
328 // CHECK-NEXT:   {
329 // CHECK-NEXT:    "id": "0x{{.*}}",
330 // CHECK-NEXT:    "kind": "CompoundStmt",
331 // CHECK-NEXT:    "range": {
332 // CHECK-NEXT:     "begin": {
333 // CHECK-NEXT:      "offset": 175,
334 // CHECK-NEXT:      "col": 24,
335 // CHECK-NEXT:      "tokLen": 1
336 // CHECK-NEXT:     },
337 // CHECK-NEXT:     "end": {
338 // CHECK-NEXT:      "offset": 200,
339 // CHECK-NEXT:      "line": 10,
340 // CHECK-NEXT:      "col": 1,
341 // CHECK-NEXT:      "tokLen": 1
342 // CHECK-NEXT:     }
343 // CHECK-NEXT:    },
344 // CHECK-NEXT:    "inner": [
345 // CHECK-NEXT:     {
346 // CHECK-NEXT:      "id": "0x{{.*}}",
347 // CHECK-NEXT:      "kind": "BinaryOperator",
348 // CHECK-NEXT:      "range": {
349 // CHECK-NEXT:       "begin": {
350 // CHECK-NEXT:        "offset": 180,
351 // CHECK-NEXT:        "line": 8,
352 // CHECK-NEXT:        "col": 3,
353 // CHECK-NEXT:        "tokLen": 1
354 // CHECK-NEXT:       },
355 // CHECK-NEXT:       "end": {
356 // CHECK-NEXT:        "offset": 184,
357 // CHECK-NEXT:        "col": 7,
358 // CHECK-NEXT:        "tokLen": 2
359 // CHECK-NEXT:       }
360 // CHECK-NEXT:      },
361 // CHECK-NEXT:      "type": {
362 // CHECK-NEXT:       "qualType": "int"
363 // CHECK-NEXT:      },
364 // CHECK-NEXT:      "valueCategory": "rvalue",
365 // CHECK-NEXT:      "opcode": "=",
366 // CHECK-NEXT:      "inner": [
367 // CHECK-NEXT:       {
368 // CHECK-NEXT:        "id": "0x{{.*}}",
369 // CHECK-NEXT:        "kind": "DeclRefExpr",
370 // CHECK-NEXT:        "range": {
371 // CHECK-NEXT:         "begin": {
372 // CHECK-NEXT:          "offset": 180,
373 // CHECK-NEXT:          "col": 3,
374 // CHECK-NEXT:          "tokLen": 1
375 // CHECK-NEXT:         },
376 // CHECK-NEXT:         "end": {
377 // CHECK-NEXT:          "offset": 180,
378 // CHECK-NEXT:          "col": 3,
379 // CHECK-NEXT:          "tokLen": 1
380 // CHECK-NEXT:         }
381 // CHECK-NEXT:        },
382 // CHECK-NEXT:        "type": {
383 // CHECK-NEXT:         "qualType": "int"
384 // CHECK-NEXT:        },
385 // CHECK-NEXT:        "valueCategory": "lvalue",
386 // CHECK-NEXT:        "referencedDecl": {
387 // CHECK-NEXT:         "id": "0x{{.*}}",
388 // CHECK-NEXT:         "kind": "ParmVarDecl",
389 // CHECK-NEXT:         "name": "a",
390 // CHECK-NEXT:         "type": {
391 // CHECK-NEXT:          "qualType": "int"
392 // CHECK-NEXT:         }
393 // CHECK-NEXT:        }
394 // CHECK-NEXT:       },
395 // CHECK-NEXT:       {
396 // CHECK-NEXT:        "id": "0x{{.*}}",
397 // CHECK-NEXT:        "kind": "IntegerLiteral",
398 // CHECK-NEXT:        "range": {
399 // CHECK-NEXT:         "begin": {
400 // CHECK-NEXT:          "offset": 184,
401 // CHECK-NEXT:          "col": 7,
402 // CHECK-NEXT:          "tokLen": 2
403 // CHECK-NEXT:         },
404 // CHECK-NEXT:         "end": {
405 // CHECK-NEXT:          "offset": 184,
406 // CHECK-NEXT:          "col": 7,
407 // CHECK-NEXT:          "tokLen": 2
408 // CHECK-NEXT:         }
409 // CHECK-NEXT:        },
410 // CHECK-NEXT:        "type": {
411 // CHECK-NEXT:         "qualType": "int"
412 // CHECK-NEXT:        },
413 // CHECK-NEXT:        "valueCategory": "rvalue",
414 // CHECK-NEXT:        "value": "12"
415 // CHECK-NEXT:       }
416 // CHECK-NEXT:      ]
417 // CHECK-NEXT:     },
418 // CHECK-NEXT:     {
419 // CHECK-NEXT:      "id": "0x{{.*}}",
420 // CHECK-NEXT:      "kind": "CompoundAssignOperator",
421 // CHECK-NEXT:      "range": {
422 // CHECK-NEXT:       "begin": {
423 // CHECK-NEXT:        "offset": 191,
424 // CHECK-NEXT:        "line": 9,
425 // CHECK-NEXT:        "col": 3,
426 // CHECK-NEXT:        "tokLen": 1
427 // CHECK-NEXT:       },
428 // CHECK-NEXT:       "end": {
429 // CHECK-NEXT:        "offset": 196,
430 // CHECK-NEXT:        "col": 8,
431 // CHECK-NEXT:        "tokLen": 1
432 // CHECK-NEXT:       }
433 // CHECK-NEXT:      },
434 // CHECK-NEXT:      "type": {
435 // CHECK-NEXT:       "qualType": "int"
436 // CHECK-NEXT:      },
437 // CHECK-NEXT:      "valueCategory": "rvalue",
438 // CHECK-NEXT:      "opcode": "+=",
439 // CHECK-NEXT:      "computeLHSType": {
440 // CHECK-NEXT:       "qualType": "int"
441 // CHECK-NEXT:      },
442 // CHECK-NEXT:      "computeResultType": {
443 // CHECK-NEXT:       "qualType": "int"
444 // CHECK-NEXT:      },
445 // CHECK-NEXT:      "inner": [
446 // CHECK-NEXT:       {
447 // CHECK-NEXT:        "id": "0x{{.*}}",
448 // CHECK-NEXT:        "kind": "DeclRefExpr",
449 // CHECK-NEXT:        "range": {
450 // CHECK-NEXT:         "begin": {
451 // CHECK-NEXT:          "offset": 191,
452 // CHECK-NEXT:          "col": 3,
453 // CHECK-NEXT:          "tokLen": 1
454 // CHECK-NEXT:         },
455 // CHECK-NEXT:         "end": {
456 // CHECK-NEXT:          "offset": 191,
457 // CHECK-NEXT:          "col": 3,
458 // CHECK-NEXT:          "tokLen": 1
459 // CHECK-NEXT:         }
460 // CHECK-NEXT:        },
461 // CHECK-NEXT:        "type": {
462 // CHECK-NEXT:         "qualType": "int"
463 // CHECK-NEXT:        },
464 // CHECK-NEXT:        "valueCategory": "lvalue",
465 // CHECK-NEXT:        "referencedDecl": {
466 // CHECK-NEXT:         "id": "0x{{.*}}",
467 // CHECK-NEXT:         "kind": "ParmVarDecl",
468 // CHECK-NEXT:         "name": "a",
469 // CHECK-NEXT:         "type": {
470 // CHECK-NEXT:          "qualType": "int"
471 // CHECK-NEXT:         }
472 // CHECK-NEXT:        }
473 // CHECK-NEXT:       },
474 // CHECK-NEXT:       {
475 // CHECK-NEXT:        "id": "0x{{.*}}",
476 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
477 // CHECK-NEXT:        "range": {
478 // CHECK-NEXT:         "begin": {
479 // CHECK-NEXT:          "offset": 196,
480 // CHECK-NEXT:          "col": 8,
481 // CHECK-NEXT:          "tokLen": 1
482 // CHECK-NEXT:         },
483 // CHECK-NEXT:         "end": {
484 // CHECK-NEXT:          "offset": 196,
485 // CHECK-NEXT:          "col": 8,
486 // CHECK-NEXT:          "tokLen": 1
487 // CHECK-NEXT:         }
488 // CHECK-NEXT:        },
489 // CHECK-NEXT:        "type": {
490 // CHECK-NEXT:         "qualType": "int"
491 // CHECK-NEXT:        },
492 // CHECK-NEXT:        "valueCategory": "rvalue",
493 // CHECK-NEXT:        "castKind": "LValueToRValue",
494 // CHECK-NEXT:        "inner": [
495 // CHECK-NEXT:         {
496 // CHECK-NEXT:          "id": "0x{{.*}}",
497 // CHECK-NEXT:          "kind": "DeclRefExpr",
498 // CHECK-NEXT:          "range": {
499 // CHECK-NEXT:           "begin": {
500 // CHECK-NEXT:            "offset": 196,
501 // CHECK-NEXT:            "col": 8,
502 // CHECK-NEXT:            "tokLen": 1
503 // CHECK-NEXT:           },
504 // CHECK-NEXT:           "end": {
505 // CHECK-NEXT:            "offset": 196,
506 // CHECK-NEXT:            "col": 8,
507 // CHECK-NEXT:            "tokLen": 1
508 // CHECK-NEXT:           }
509 // CHECK-NEXT:          },
510 // CHECK-NEXT:          "type": {
511 // CHECK-NEXT:           "qualType": "int"
512 // CHECK-NEXT:          },
513 // CHECK-NEXT:          "valueCategory": "lvalue",
514 // CHECK-NEXT:          "referencedDecl": {
515 // CHECK-NEXT:           "id": "0x{{.*}}",
516 // CHECK-NEXT:           "kind": "ParmVarDecl",
517 // CHECK-NEXT:           "name": "a",
518 // CHECK-NEXT:           "type": {
519 // CHECK-NEXT:            "qualType": "int"
520 // CHECK-NEXT:           }
521 // CHECK-NEXT:          }
522 // CHECK-NEXT:         }
523 // CHECK-NEXT:        ]
524 // CHECK-NEXT:       }
525 // CHECK-NEXT:      ]
526 // CHECK-NEXT:     }
527 // CHECK-NEXT:    ]
528 // CHECK-NEXT:   }
529 // CHECK-NEXT:  ]
530 // CHECK-NEXT: }
531 
532 
533 // CHECK:  "kind": "FunctionDecl",
534 // CHECK-NEXT:  "loc": {
535 // CHECK-NEXT:   "offset": 210,
536 // CHECK-NEXT:   "line": 12,
537 // CHECK-NEXT:   "col": 6,
538 // CHECK-NEXT:   "tokLen": 12
539 // CHECK-NEXT:  },
540 // CHECK-NEXT:  "range": {
541 // CHECK-NEXT:   "begin": {
542 // CHECK-NEXT:    "offset": 205,
543 // CHECK-NEXT:    "col": 1,
544 // CHECK-NEXT:    "tokLen": 4
545 // CHECK-NEXT:   },
546 // CHECK-NEXT:   "end": {
547 // CHECK-NEXT:    "offset": 258,
548 // CHECK-NEXT:    "line": 15,
549 // CHECK-NEXT:    "col": 1,
550 // CHECK-NEXT:    "tokLen": 1
551 // CHECK-NEXT:   }
552 // CHECK-NEXT:  },
553 // CHECK-NEXT:  "name": "Conditionals",
554 // CHECK-NEXT:  "mangledName": "Conditionals",
555 // CHECK-NEXT:  "type": {
556 // CHECK-NEXT:   "qualType": "void (int)"
557 // CHECK-NEXT:  },
558 // CHECK-NEXT:  "inner": [
559 // CHECK-NEXT:   {
560 // CHECK-NEXT:    "id": "0x{{.*}}",
561 // CHECK-NEXT:    "kind": "ParmVarDecl",
562 // CHECK-NEXT:    "loc": {
563 // CHECK-NEXT:     "offset": 227,
564 // CHECK-NEXT:     "line": 12,
565 // CHECK-NEXT:     "col": 23,
566 // CHECK-NEXT:     "tokLen": 1
567 // CHECK-NEXT:    },
568 // CHECK-NEXT:    "range": {
569 // CHECK-NEXT:     "begin": {
570 // CHECK-NEXT:      "offset": 223,
571 // CHECK-NEXT:      "col": 19,
572 // CHECK-NEXT:      "tokLen": 3
573 // CHECK-NEXT:     },
574 // CHECK-NEXT:     "end": {
575 // CHECK-NEXT:      "offset": 227,
576 // CHECK-NEXT:      "col": 23,
577 // CHECK-NEXT:      "tokLen": 1
578 // CHECK-NEXT:     }
579 // CHECK-NEXT:    },
580 // CHECK-NEXT:    "isUsed": true,
581 // CHECK-NEXT:    "name": "a",
582 // CHECK-NEXT:    "mangledName": "a",
583 // CHECK-NEXT:    "type": {
584 // CHECK-NEXT:     "qualType": "int"
585 // CHECK-NEXT:    }
586 // CHECK-NEXT:   },
587 // CHECK-NEXT:   {
588 // CHECK-NEXT:    "id": "0x{{.*}}",
589 // CHECK-NEXT:    "kind": "CompoundStmt",
590 // CHECK-NEXT:    "range": {
591 // CHECK-NEXT:     "begin": {
592 // CHECK-NEXT:      "offset": 230,
593 // CHECK-NEXT:      "col": 26,
594 // CHECK-NEXT:      "tokLen": 1
595 // CHECK-NEXT:     },
596 // CHECK-NEXT:     "end": {
597 // CHECK-NEXT:      "offset": 258,
598 // CHECK-NEXT:      "line": 15,
599 // CHECK-NEXT:      "col": 1,
600 // CHECK-NEXT:      "tokLen": 1
601 // CHECK-NEXT:     }
602 // CHECK-NEXT:    },
603 // CHECK-NEXT:    "inner": [
604 // CHECK-NEXT:     {
605 // CHECK-NEXT:      "id": "0x{{.*}}",
606 // CHECK-NEXT:      "kind": "ConditionalOperator",
607 // CHECK-NEXT:      "range": {
608 // CHECK-NEXT:       "begin": {
609 // CHECK-NEXT:        "offset": 235,
610 // CHECK-NEXT:        "line": 13,
611 // CHECK-NEXT:        "col": 3,
612 // CHECK-NEXT:        "tokLen": 1
613 // CHECK-NEXT:       },
614 // CHECK-NEXT:       "end": {
615 // CHECK-NEXT:        "offset": 243,
616 // CHECK-NEXT:        "col": 11,
617 // CHECK-NEXT:        "tokLen": 1
618 // CHECK-NEXT:       }
619 // CHECK-NEXT:      },
620 // CHECK-NEXT:      "type": {
621 // CHECK-NEXT:       "qualType": "int"
622 // CHECK-NEXT:      },
623 // CHECK-NEXT:      "valueCategory": "rvalue",
624 // CHECK-NEXT:      "inner": [
625 // CHECK-NEXT:       {
626 // CHECK-NEXT:        "id": "0x{{.*}}",
627 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
628 // CHECK-NEXT:        "range": {
629 // CHECK-NEXT:         "begin": {
630 // CHECK-NEXT:          "offset": 235,
631 // CHECK-NEXT:          "col": 3,
632 // CHECK-NEXT:          "tokLen": 1
633 // CHECK-NEXT:         },
634 // CHECK-NEXT:         "end": {
635 // CHECK-NEXT:          "offset": 235,
636 // CHECK-NEXT:          "col": 3,
637 // CHECK-NEXT:          "tokLen": 1
638 // CHECK-NEXT:         }
639 // CHECK-NEXT:        },
640 // CHECK-NEXT:        "type": {
641 // CHECK-NEXT:         "qualType": "int"
642 // CHECK-NEXT:        },
643 // CHECK-NEXT:        "valueCategory": "rvalue",
644 // CHECK-NEXT:        "castKind": "LValueToRValue",
645 // CHECK-NEXT:        "inner": [
646 // CHECK-NEXT:         {
647 // CHECK-NEXT:          "id": "0x{{.*}}",
648 // CHECK-NEXT:          "kind": "DeclRefExpr",
649 // CHECK-NEXT:          "range": {
650 // CHECK-NEXT:           "begin": {
651 // CHECK-NEXT:            "offset": 235,
652 // CHECK-NEXT:            "col": 3,
653 // CHECK-NEXT:            "tokLen": 1
654 // CHECK-NEXT:           },
655 // CHECK-NEXT:           "end": {
656 // CHECK-NEXT:            "offset": 235,
657 // CHECK-NEXT:            "col": 3,
658 // CHECK-NEXT:            "tokLen": 1
659 // CHECK-NEXT:           }
660 // CHECK-NEXT:          },
661 // CHECK-NEXT:          "type": {
662 // CHECK-NEXT:           "qualType": "int"
663 // CHECK-NEXT:          },
664 // CHECK-NEXT:          "valueCategory": "lvalue",
665 // CHECK-NEXT:          "referencedDecl": {
666 // CHECK-NEXT:           "id": "0x{{.*}}",
667 // CHECK-NEXT:           "kind": "ParmVarDecl",
668 // CHECK-NEXT:           "name": "a",
669 // CHECK-NEXT:           "type": {
670 // CHECK-NEXT:            "qualType": "int"
671 // CHECK-NEXT:           }
672 // CHECK-NEXT:          }
673 // CHECK-NEXT:         }
674 // CHECK-NEXT:        ]
675 // CHECK-NEXT:       },
676 // CHECK-NEXT:       {
677 // CHECK-NEXT:        "id": "0x{{.*}}",
678 // CHECK-NEXT:        "kind": "IntegerLiteral",
679 // CHECK-NEXT:        "range": {
680 // CHECK-NEXT:         "begin": {
681 // CHECK-NEXT:          "offset": 239,
682 // CHECK-NEXT:          "col": 7,
683 // CHECK-NEXT:          "tokLen": 1
684 // CHECK-NEXT:         },
685 // CHECK-NEXT:         "end": {
686 // CHECK-NEXT:          "offset": 239,
687 // CHECK-NEXT:          "col": 7,
688 // CHECK-NEXT:          "tokLen": 1
689 // CHECK-NEXT:         }
690 // CHECK-NEXT:        },
691 // CHECK-NEXT:        "type": {
692 // CHECK-NEXT:         "qualType": "int"
693 // CHECK-NEXT:        },
694 // CHECK-NEXT:        "valueCategory": "rvalue",
695 // CHECK-NEXT:        "value": "0"
696 // CHECK-NEXT:       },
697 // CHECK-NEXT:       {
698 // CHECK-NEXT:        "id": "0x{{.*}}",
699 // CHECK-NEXT:        "kind": "IntegerLiteral",
700 // CHECK-NEXT:        "range": {
701 // CHECK-NEXT:         "begin": {
702 // CHECK-NEXT:          "offset": 243,
703 // CHECK-NEXT:          "col": 11,
704 // CHECK-NEXT:          "tokLen": 1
705 // CHECK-NEXT:         },
706 // CHECK-NEXT:         "end": {
707 // CHECK-NEXT:          "offset": 243,
708 // CHECK-NEXT:          "col": 11,
709 // CHECK-NEXT:          "tokLen": 1
710 // CHECK-NEXT:         }
711 // CHECK-NEXT:        },
712 // CHECK-NEXT:        "type": {
713 // CHECK-NEXT:         "qualType": "int"
714 // CHECK-NEXT:        },
715 // CHECK-NEXT:        "valueCategory": "rvalue",
716 // CHECK-NEXT:        "value": "1"
717 // CHECK-NEXT:       }
718 // CHECK-NEXT:      ]
719 // CHECK-NEXT:     },
720 // CHECK-NEXT:     {
721 // CHECK-NEXT:      "id": "0x{{.*}}",
722 // CHECK-NEXT:      "kind": "BinaryConditionalOperator",
723 // CHECK-NEXT:      "range": {
724 // CHECK-NEXT:       "begin": {
725 // CHECK-NEXT:        "offset": 249,
726 // CHECK-NEXT:        "line": 14,
727 // CHECK-NEXT:        "col": 3,
728 // CHECK-NEXT:        "tokLen": 1
729 // CHECK-NEXT:       },
730 // CHECK-NEXT:       "end": {
731 // CHECK-NEXT:        "offset": 254,
732 // CHECK-NEXT:        "col": 8,
733 // CHECK-NEXT:        "tokLen": 1
734 // CHECK-NEXT:       }
735 // CHECK-NEXT:      },
736 // CHECK-NEXT:      "type": {
737 // CHECK-NEXT:       "qualType": "int"
738 // CHECK-NEXT:      },
739 // CHECK-NEXT:      "valueCategory": "rvalue",
740 // CHECK-NEXT:      "inner": [
741 // CHECK-NEXT:       {
742 // CHECK-NEXT:        "id": "0x{{.*}}",
743 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
744 // CHECK-NEXT:        "range": {
745 // CHECK-NEXT:         "begin": {
746 // CHECK-NEXT:          "offset": 249,
747 // CHECK-NEXT:          "col": 3,
748 // CHECK-NEXT:          "tokLen": 1
749 // CHECK-NEXT:         },
750 // CHECK-NEXT:         "end": {
751 // CHECK-NEXT:          "offset": 249,
752 // CHECK-NEXT:          "col": 3,
753 // CHECK-NEXT:          "tokLen": 1
754 // CHECK-NEXT:         }
755 // CHECK-NEXT:        },
756 // CHECK-NEXT:        "type": {
757 // CHECK-NEXT:         "qualType": "int"
758 // CHECK-NEXT:        },
759 // CHECK-NEXT:        "valueCategory": "rvalue",
760 // CHECK-NEXT:        "castKind": "LValueToRValue",
761 // CHECK-NEXT:        "inner": [
762 // CHECK-NEXT:         {
763 // CHECK-NEXT:          "id": "0x{{.*}}",
764 // CHECK-NEXT:          "kind": "DeclRefExpr",
765 // CHECK-NEXT:          "range": {
766 // CHECK-NEXT:           "begin": {
767 // CHECK-NEXT:            "offset": 249,
768 // CHECK-NEXT:            "col": 3,
769 // CHECK-NEXT:            "tokLen": 1
770 // CHECK-NEXT:           },
771 // CHECK-NEXT:           "end": {
772 // CHECK-NEXT:            "offset": 249,
773 // CHECK-NEXT:            "col": 3,
774 // CHECK-NEXT:            "tokLen": 1
775 // CHECK-NEXT:           }
776 // CHECK-NEXT:          },
777 // CHECK-NEXT:          "type": {
778 // CHECK-NEXT:           "qualType": "int"
779 // CHECK-NEXT:          },
780 // CHECK-NEXT:          "valueCategory": "lvalue",
781 // CHECK-NEXT:          "referencedDecl": {
782 // CHECK-NEXT:           "id": "0x{{.*}}",
783 // CHECK-NEXT:           "kind": "ParmVarDecl",
784 // CHECK-NEXT:           "name": "a",
785 // CHECK-NEXT:           "type": {
786 // CHECK-NEXT:            "qualType": "int"
787 // CHECK-NEXT:           }
788 // CHECK-NEXT:          }
789 // CHECK-NEXT:         }
790 // CHECK-NEXT:        ]
791 // CHECK-NEXT:       },
792 // CHECK-NEXT:       {
793 // CHECK-NEXT:        "id": "0x{{.*}}",
794 // CHECK-NEXT:        "kind": "OpaqueValueExpr",
795 // CHECK-NEXT:        "range": {
796 // CHECK-NEXT:         "begin": {
797 // CHECK-NEXT:          "offset": 249,
798 // CHECK-NEXT:          "col": 3,
799 // CHECK-NEXT:          "tokLen": 1
800 // CHECK-NEXT:         },
801 // CHECK-NEXT:         "end": {
802 // CHECK-NEXT:          "offset": 249,
803 // CHECK-NEXT:          "col": 3,
804 // CHECK-NEXT:          "tokLen": 1
805 // CHECK-NEXT:         }
806 // CHECK-NEXT:        },
807 // CHECK-NEXT:        "type": {
808 // CHECK-NEXT:         "qualType": "int"
809 // CHECK-NEXT:        },
810 // CHECK-NEXT:        "valueCategory": "rvalue",
811 // CHECK-NEXT:        "inner": [
812 // CHECK-NEXT:         {
813 // CHECK-NEXT:          "id": "0x{{.*}}",
814 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
815 // CHECK-NEXT:          "range": {
816 // CHECK-NEXT:           "begin": {
817 // CHECK-NEXT:            "offset": 249,
818 // CHECK-NEXT:            "col": 3,
819 // CHECK-NEXT:            "tokLen": 1
820 // CHECK-NEXT:           },
821 // CHECK-NEXT:           "end": {
822 // CHECK-NEXT:            "offset": 249,
823 // CHECK-NEXT:            "col": 3,
824 // CHECK-NEXT:            "tokLen": 1
825 // CHECK-NEXT:           }
826 // CHECK-NEXT:          },
827 // CHECK-NEXT:          "type": {
828 // CHECK-NEXT:           "qualType": "int"
829 // CHECK-NEXT:          },
830 // CHECK-NEXT:          "valueCategory": "rvalue",
831 // CHECK-NEXT:          "castKind": "LValueToRValue",
832 // CHECK-NEXT:          "inner": [
833 // CHECK-NEXT:           {
834 // CHECK-NEXT:            "id": "0x{{.*}}",
835 // CHECK-NEXT:            "kind": "DeclRefExpr",
836 // CHECK-NEXT:            "range": {
837 // CHECK-NEXT:             "begin": {
838 // CHECK-NEXT:              "offset": 249,
839 // CHECK-NEXT:              "col": 3,
840 // CHECK-NEXT:              "tokLen": 1
841 // CHECK-NEXT:             },
842 // CHECK-NEXT:             "end": {
843 // CHECK-NEXT:              "offset": 249,
844 // CHECK-NEXT:              "col": 3,
845 // CHECK-NEXT:              "tokLen": 1
846 // CHECK-NEXT:             }
847 // CHECK-NEXT:            },
848 // CHECK-NEXT:            "type": {
849 // CHECK-NEXT:             "qualType": "int"
850 // CHECK-NEXT:            },
851 // CHECK-NEXT:            "valueCategory": "lvalue",
852 // CHECK-NEXT:            "referencedDecl": {
853 // CHECK-NEXT:             "id": "0x{{.*}}",
854 // CHECK-NEXT:             "kind": "ParmVarDecl",
855 // CHECK-NEXT:             "name": "a",
856 // CHECK-NEXT:             "type": {
857 // CHECK-NEXT:              "qualType": "int"
858 // CHECK-NEXT:             }
859 // CHECK-NEXT:            }
860 // CHECK-NEXT:           }
861 // CHECK-NEXT:          ]
862 // CHECK-NEXT:         }
863 // CHECK-NEXT:        ]
864 // CHECK-NEXT:       },
865 // CHECK-NEXT:       {
866 // CHECK-NEXT:        "id": "0x{{.*}}",
867 // CHECK-NEXT:        "kind": "OpaqueValueExpr",
868 // CHECK-NEXT:        "range": {
869 // CHECK-NEXT:         "begin": {
870 // CHECK-NEXT:          "offset": 249,
871 // CHECK-NEXT:          "col": 3,
872 // CHECK-NEXT:          "tokLen": 1
873 // CHECK-NEXT:         },
874 // CHECK-NEXT:         "end": {
875 // CHECK-NEXT:          "offset": 249,
876 // CHECK-NEXT:          "col": 3,
877 // CHECK-NEXT:          "tokLen": 1
878 // CHECK-NEXT:         }
879 // CHECK-NEXT:        },
880 // CHECK-NEXT:        "type": {
881 // CHECK-NEXT:         "qualType": "int"
882 // CHECK-NEXT:        },
883 // CHECK-NEXT:        "valueCategory": "rvalue",
884 // CHECK-NEXT:        "inner": [
885 // CHECK-NEXT:         {
886 // CHECK-NEXT:          "id": "0x{{.*}}",
887 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
888 // CHECK-NEXT:          "range": {
889 // CHECK-NEXT:           "begin": {
890 // CHECK-NEXT:            "offset": 249,
891 // CHECK-NEXT:            "col": 3,
892 // CHECK-NEXT:            "tokLen": 1
893 // CHECK-NEXT:           },
894 // CHECK-NEXT:           "end": {
895 // CHECK-NEXT:            "offset": 249,
896 // CHECK-NEXT:            "col": 3,
897 // CHECK-NEXT:            "tokLen": 1
898 // CHECK-NEXT:           }
899 // CHECK-NEXT:          },
900 // CHECK-NEXT:          "type": {
901 // CHECK-NEXT:           "qualType": "int"
902 // CHECK-NEXT:          },
903 // CHECK-NEXT:          "valueCategory": "rvalue",
904 // CHECK-NEXT:          "castKind": "LValueToRValue",
905 // CHECK-NEXT:          "inner": [
906 // CHECK-NEXT:           {
907 // CHECK-NEXT:            "id": "0x{{.*}}",
908 // CHECK-NEXT:            "kind": "DeclRefExpr",
909 // CHECK-NEXT:            "range": {
910 // CHECK-NEXT:             "begin": {
911 // CHECK-NEXT:              "offset": 249,
912 // CHECK-NEXT:              "col": 3,
913 // CHECK-NEXT:              "tokLen": 1
914 // CHECK-NEXT:             },
915 // CHECK-NEXT:             "end": {
916 // CHECK-NEXT:              "offset": 249,
917 // CHECK-NEXT:              "col": 3,
918 // CHECK-NEXT:              "tokLen": 1
919 // CHECK-NEXT:             }
920 // CHECK-NEXT:            },
921 // CHECK-NEXT:            "type": {
922 // CHECK-NEXT:             "qualType": "int"
923 // CHECK-NEXT:            },
924 // CHECK-NEXT:            "valueCategory": "lvalue",
925 // CHECK-NEXT:            "referencedDecl": {
926 // CHECK-NEXT:             "id": "0x{{.*}}",
927 // CHECK-NEXT:             "kind": "ParmVarDecl",
928 // CHECK-NEXT:             "name": "a",
929 // CHECK-NEXT:             "type": {
930 // CHECK-NEXT:              "qualType": "int"
931 // CHECK-NEXT:             }
932 // CHECK-NEXT:            }
933 // CHECK-NEXT:           }
934 // CHECK-NEXT:          ]
935 // CHECK-NEXT:         }
936 // CHECK-NEXT:        ]
937 // CHECK-NEXT:       },
938 // CHECK-NEXT:       {
939 // CHECK-NEXT:        "id": "0x{{.*}}",
940 // CHECK-NEXT:        "kind": "IntegerLiteral",
941 // CHECK-NEXT:        "range": {
942 // CHECK-NEXT:         "begin": {
943 // CHECK-NEXT:          "offset": 254,
944 // CHECK-NEXT:          "col": 8,
945 // CHECK-NEXT:          "tokLen": 1
946 // CHECK-NEXT:         },
947 // CHECK-NEXT:         "end": {
948 // CHECK-NEXT:          "offset": 254,
949 // CHECK-NEXT:          "col": 8,
950 // CHECK-NEXT:          "tokLen": 1
951 // CHECK-NEXT:         }
952 // CHECK-NEXT:        },
953 // CHECK-NEXT:        "type": {
954 // CHECK-NEXT:         "qualType": "int"
955 // CHECK-NEXT:        },
956 // CHECK-NEXT:        "valueCategory": "rvalue",
957 // CHECK-NEXT:        "value": "0"
958 // CHECK-NEXT:       }
959 // CHECK-NEXT:      ]
960 // CHECK-NEXT:     }
961 // CHECK-NEXT:    ]
962 // CHECK-NEXT:   }
963 // CHECK-NEXT:  ]
964 // CHECK-NEXT: }
965 
966 
967 // CHECK:  "kind": "FunctionDecl",
968 // CHECK-NEXT:  "loc": {
969 // CHECK-NEXT:   "offset": 268,
970 // CHECK-NEXT:   "line": 17,
971 // CHECK-NEXT:   "col": 6,
972 // CHECK-NEXT:   "tokLen": 15
973 // CHECK-NEXT:  },
974 // CHECK-NEXT:  "range": {
975 // CHECK-NEXT:   "begin": {
976 // CHECK-NEXT:    "offset": 263,
977 // CHECK-NEXT:    "col": 1,
978 // CHECK-NEXT:    "tokLen": 4
979 // CHECK-NEXT:   },
980 // CHECK-NEXT:   "end": {
981 // CHECK-NEXT:    "offset": 686,
982 // CHECK-NEXT:    "line": 49,
983 // CHECK-NEXT:    "col": 1,
984 // CHECK-NEXT:    "tokLen": 1
985 // CHECK-NEXT:   }
986 // CHECK-NEXT:  },
987 // CHECK-NEXT:  "name": "BinaryOperators",
988 // CHECK-NEXT:  "mangledName": "BinaryOperators",
989 // CHECK-NEXT:  "type": {
990 // CHECK-NEXT:   "qualType": "void (int, int)"
991 // CHECK-NEXT:  },
992 // CHECK-NEXT:  "inner": [
993 // CHECK-NEXT:   {
994 // CHECK-NEXT:    "id": "0x{{.*}}",
995 // CHECK-NEXT:    "kind": "ParmVarDecl",
996 // CHECK-NEXT:    "loc": {
997 // CHECK-NEXT:     "offset": 288,
998 // CHECK-NEXT:     "line": 17,
999 // CHECK-NEXT:     "col": 26,
1000 // CHECK-NEXT:     "tokLen": 1
1001 // CHECK-NEXT:    },
1002 // CHECK-NEXT:    "range": {
1003 // CHECK-NEXT:     "begin": {
1004 // CHECK-NEXT:      "offset": 284,
1005 // CHECK-NEXT:      "col": 22,
1006 // CHECK-NEXT:      "tokLen": 3
1007 // CHECK-NEXT:     },
1008 // CHECK-NEXT:     "end": {
1009 // CHECK-NEXT:      "offset": 288,
1010 // CHECK-NEXT:      "col": 26,
1011 // CHECK-NEXT:      "tokLen": 1
1012 // CHECK-NEXT:     }
1013 // CHECK-NEXT:    },
1014 // CHECK-NEXT:    "isUsed": true,
1015 // CHECK-NEXT:    "name": "a",
1016 // CHECK-NEXT:    "mangledName": "a",
1017 // CHECK-NEXT:    "type": {
1018 // CHECK-NEXT:     "qualType": "int"
1019 // CHECK-NEXT:    }
1020 // CHECK-NEXT:   },
1021 // CHECK-NEXT:   {
1022 // CHECK-NEXT:    "id": "0x{{.*}}",
1023 // CHECK-NEXT:    "kind": "ParmVarDecl",
1024 // CHECK-NEXT:    "loc": {
1025 // CHECK-NEXT:     "offset": 295,
1026 // CHECK-NEXT:     "col": 33,
1027 // CHECK-NEXT:     "tokLen": 1
1028 // CHECK-NEXT:    },
1029 // CHECK-NEXT:    "range": {
1030 // CHECK-NEXT:     "begin": {
1031 // CHECK-NEXT:      "offset": 291,
1032 // CHECK-NEXT:      "col": 29,
1033 // CHECK-NEXT:      "tokLen": 3
1034 // CHECK-NEXT:     },
1035 // CHECK-NEXT:     "end": {
1036 // CHECK-NEXT:      "offset": 295,
1037 // CHECK-NEXT:      "col": 33,
1038 // CHECK-NEXT:      "tokLen": 1
1039 // CHECK-NEXT:     }
1040 // CHECK-NEXT:    },
1041 // CHECK-NEXT:    "isUsed": true,
1042 // CHECK-NEXT:    "name": "b",
1043 // CHECK-NEXT:    "mangledName": "b",
1044 // CHECK-NEXT:    "type": {
1045 // CHECK-NEXT:     "qualType": "int"
1046 // CHECK-NEXT:    }
1047 // CHECK-NEXT:   },
1048 // CHECK-NEXT:   {
1049 // CHECK-NEXT:    "id": "0x{{.*}}",
1050 // CHECK-NEXT:    "kind": "CompoundStmt",
1051 // CHECK-NEXT:    "range": {
1052 // CHECK-NEXT:     "begin": {
1053 // CHECK-NEXT:      "offset": 298,
1054 // CHECK-NEXT:      "col": 36,
1055 // CHECK-NEXT:      "tokLen": 1
1056 // CHECK-NEXT:     },
1057 // CHECK-NEXT:     "end": {
1058 // CHECK-NEXT:      "offset": 686,
1059 // CHECK-NEXT:      "line": 49,
1060 // CHECK-NEXT:      "col": 1,
1061 // CHECK-NEXT:      "tokLen": 1
1062 // CHECK-NEXT:     }
1063 // CHECK-NEXT:    },
1064 // CHECK-NEXT:    "inner": [
1065 // CHECK-NEXT:     {
1066 // CHECK-NEXT:      "id": "0x{{.*}}",
1067 // CHECK-NEXT:      "kind": "BinaryOperator",
1068 // CHECK-NEXT:      "range": {
1069 // CHECK-NEXT:       "begin": {
1070 // CHECK-NEXT:        "offset": 327,
1071 // CHECK-NEXT:        "line": 19,
1072 // CHECK-NEXT:        "col": 3,
1073 // CHECK-NEXT:        "tokLen": 1
1074 // CHECK-NEXT:       },
1075 // CHECK-NEXT:       "end": {
1076 // CHECK-NEXT:        "offset": 332,
1077 // CHECK-NEXT:        "col": 8,
1078 // CHECK-NEXT:        "tokLen": 1
1079 // CHECK-NEXT:       }
1080 // CHECK-NEXT:      },
1081 // CHECK-NEXT:      "type": {
1082 // CHECK-NEXT:       "qualType": "int"
1083 // CHECK-NEXT:      },
1084 // CHECK-NEXT:      "valueCategory": "rvalue",
1085 // CHECK-NEXT:      "opcode": "||",
1086 // CHECK-NEXT:      "inner": [
1087 // CHECK-NEXT:       {
1088 // CHECK-NEXT:        "id": "0x{{.*}}",
1089 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1090 // CHECK-NEXT:        "range": {
1091 // CHECK-NEXT:         "begin": {
1092 // CHECK-NEXT:          "offset": 327,
1093 // CHECK-NEXT:          "col": 3,
1094 // CHECK-NEXT:          "tokLen": 1
1095 // CHECK-NEXT:         },
1096 // CHECK-NEXT:         "end": {
1097 // CHECK-NEXT:          "offset": 327,
1098 // CHECK-NEXT:          "col": 3,
1099 // CHECK-NEXT:          "tokLen": 1
1100 // CHECK-NEXT:         }
1101 // CHECK-NEXT:        },
1102 // CHECK-NEXT:        "type": {
1103 // CHECK-NEXT:         "qualType": "int"
1104 // CHECK-NEXT:        },
1105 // CHECK-NEXT:        "valueCategory": "rvalue",
1106 // CHECK-NEXT:        "castKind": "LValueToRValue",
1107 // CHECK-NEXT:        "inner": [
1108 // CHECK-NEXT:         {
1109 // CHECK-NEXT:          "id": "0x{{.*}}",
1110 // CHECK-NEXT:          "kind": "DeclRefExpr",
1111 // CHECK-NEXT:          "range": {
1112 // CHECK-NEXT:           "begin": {
1113 // CHECK-NEXT:            "offset": 327,
1114 // CHECK-NEXT:            "col": 3,
1115 // CHECK-NEXT:            "tokLen": 1
1116 // CHECK-NEXT:           },
1117 // CHECK-NEXT:           "end": {
1118 // CHECK-NEXT:            "offset": 327,
1119 // CHECK-NEXT:            "col": 3,
1120 // CHECK-NEXT:            "tokLen": 1
1121 // CHECK-NEXT:           }
1122 // CHECK-NEXT:          },
1123 // CHECK-NEXT:          "type": {
1124 // CHECK-NEXT:           "qualType": "int"
1125 // CHECK-NEXT:          },
1126 // CHECK-NEXT:          "valueCategory": "lvalue",
1127 // CHECK-NEXT:          "referencedDecl": {
1128 // CHECK-NEXT:           "id": "0x{{.*}}",
1129 // CHECK-NEXT:           "kind": "ParmVarDecl",
1130 // CHECK-NEXT:           "name": "a",
1131 // CHECK-NEXT:           "type": {
1132 // CHECK-NEXT:            "qualType": "int"
1133 // CHECK-NEXT:           }
1134 // CHECK-NEXT:          }
1135 // CHECK-NEXT:         }
1136 // CHECK-NEXT:        ]
1137 // CHECK-NEXT:       },
1138 // CHECK-NEXT:       {
1139 // CHECK-NEXT:        "id": "0x{{.*}}",
1140 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1141 // CHECK-NEXT:        "range": {
1142 // CHECK-NEXT:         "begin": {
1143 // CHECK-NEXT:          "offset": 332,
1144 // CHECK-NEXT:          "col": 8,
1145 // CHECK-NEXT:          "tokLen": 1
1146 // CHECK-NEXT:         },
1147 // CHECK-NEXT:         "end": {
1148 // CHECK-NEXT:          "offset": 332,
1149 // CHECK-NEXT:          "col": 8,
1150 // CHECK-NEXT:          "tokLen": 1
1151 // CHECK-NEXT:         }
1152 // CHECK-NEXT:        },
1153 // CHECK-NEXT:        "type": {
1154 // CHECK-NEXT:         "qualType": "int"
1155 // CHECK-NEXT:        },
1156 // CHECK-NEXT:        "valueCategory": "rvalue",
1157 // CHECK-NEXT:        "castKind": "LValueToRValue",
1158 // CHECK-NEXT:        "inner": [
1159 // CHECK-NEXT:         {
1160 // CHECK-NEXT:          "id": "0x{{.*}}",
1161 // CHECK-NEXT:          "kind": "DeclRefExpr",
1162 // CHECK-NEXT:          "range": {
1163 // CHECK-NEXT:           "begin": {
1164 // CHECK-NEXT:            "offset": 332,
1165 // CHECK-NEXT:            "col": 8,
1166 // CHECK-NEXT:            "tokLen": 1
1167 // CHECK-NEXT:           },
1168 // CHECK-NEXT:           "end": {
1169 // CHECK-NEXT:            "offset": 332,
1170 // CHECK-NEXT:            "col": 8,
1171 // CHECK-NEXT:            "tokLen": 1
1172 // CHECK-NEXT:           }
1173 // CHECK-NEXT:          },
1174 // CHECK-NEXT:          "type": {
1175 // CHECK-NEXT:           "qualType": "int"
1176 // CHECK-NEXT:          },
1177 // CHECK-NEXT:          "valueCategory": "lvalue",
1178 // CHECK-NEXT:          "referencedDecl": {
1179 // CHECK-NEXT:           "id": "0x{{.*}}",
1180 // CHECK-NEXT:           "kind": "ParmVarDecl",
1181 // CHECK-NEXT:           "name": "b",
1182 // CHECK-NEXT:           "type": {
1183 // CHECK-NEXT:            "qualType": "int"
1184 // CHECK-NEXT:           }
1185 // CHECK-NEXT:          }
1186 // CHECK-NEXT:         }
1187 // CHECK-NEXT:        ]
1188 // CHECK-NEXT:       }
1189 // CHECK-NEXT:      ]
1190 // CHECK-NEXT:     },
1191 // CHECK-NEXT:     {
1192 // CHECK-NEXT:      "id": "0x{{.*}}",
1193 // CHECK-NEXT:      "kind": "BinaryOperator",
1194 // CHECK-NEXT:      "range": {
1195 // CHECK-NEXT:       "begin": {
1196 // CHECK-NEXT:        "offset": 338,
1197 // CHECK-NEXT:        "line": 20,
1198 // CHECK-NEXT:        "col": 3,
1199 // CHECK-NEXT:        "tokLen": 1
1200 // CHECK-NEXT:       },
1201 // CHECK-NEXT:       "end": {
1202 // CHECK-NEXT:        "offset": 343,
1203 // CHECK-NEXT:        "col": 8,
1204 // CHECK-NEXT:        "tokLen": 1
1205 // CHECK-NEXT:       }
1206 // CHECK-NEXT:      },
1207 // CHECK-NEXT:      "type": {
1208 // CHECK-NEXT:       "qualType": "int"
1209 // CHECK-NEXT:      },
1210 // CHECK-NEXT:      "valueCategory": "rvalue",
1211 // CHECK-NEXT:      "opcode": "&&",
1212 // CHECK-NEXT:      "inner": [
1213 // CHECK-NEXT:       {
1214 // CHECK-NEXT:        "id": "0x{{.*}}",
1215 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1216 // CHECK-NEXT:        "range": {
1217 // CHECK-NEXT:         "begin": {
1218 // CHECK-NEXT:          "offset": 338,
1219 // CHECK-NEXT:          "col": 3,
1220 // CHECK-NEXT:          "tokLen": 1
1221 // CHECK-NEXT:         },
1222 // CHECK-NEXT:         "end": {
1223 // CHECK-NEXT:          "offset": 338,
1224 // CHECK-NEXT:          "col": 3,
1225 // CHECK-NEXT:          "tokLen": 1
1226 // CHECK-NEXT:         }
1227 // CHECK-NEXT:        },
1228 // CHECK-NEXT:        "type": {
1229 // CHECK-NEXT:         "qualType": "int"
1230 // CHECK-NEXT:        },
1231 // CHECK-NEXT:        "valueCategory": "rvalue",
1232 // CHECK-NEXT:        "castKind": "LValueToRValue",
1233 // CHECK-NEXT:        "inner": [
1234 // CHECK-NEXT:         {
1235 // CHECK-NEXT:          "id": "0x{{.*}}",
1236 // CHECK-NEXT:          "kind": "DeclRefExpr",
1237 // CHECK-NEXT:          "range": {
1238 // CHECK-NEXT:           "begin": {
1239 // CHECK-NEXT:            "offset": 338,
1240 // CHECK-NEXT:            "col": 3,
1241 // CHECK-NEXT:            "tokLen": 1
1242 // CHECK-NEXT:           },
1243 // CHECK-NEXT:           "end": {
1244 // CHECK-NEXT:            "offset": 338,
1245 // CHECK-NEXT:            "col": 3,
1246 // CHECK-NEXT:            "tokLen": 1
1247 // CHECK-NEXT:           }
1248 // CHECK-NEXT:          },
1249 // CHECK-NEXT:          "type": {
1250 // CHECK-NEXT:           "qualType": "int"
1251 // CHECK-NEXT:          },
1252 // CHECK-NEXT:          "valueCategory": "lvalue",
1253 // CHECK-NEXT:          "referencedDecl": {
1254 // CHECK-NEXT:           "id": "0x{{.*}}",
1255 // CHECK-NEXT:           "kind": "ParmVarDecl",
1256 // CHECK-NEXT:           "name": "a",
1257 // CHECK-NEXT:           "type": {
1258 // CHECK-NEXT:            "qualType": "int"
1259 // CHECK-NEXT:           }
1260 // CHECK-NEXT:          }
1261 // CHECK-NEXT:         }
1262 // CHECK-NEXT:        ]
1263 // CHECK-NEXT:       },
1264 // CHECK-NEXT:       {
1265 // CHECK-NEXT:        "id": "0x{{.*}}",
1266 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1267 // CHECK-NEXT:        "range": {
1268 // CHECK-NEXT:         "begin": {
1269 // CHECK-NEXT:          "offset": 343,
1270 // CHECK-NEXT:          "col": 8,
1271 // CHECK-NEXT:          "tokLen": 1
1272 // CHECK-NEXT:         },
1273 // CHECK-NEXT:         "end": {
1274 // CHECK-NEXT:          "offset": 343,
1275 // CHECK-NEXT:          "col": 8,
1276 // CHECK-NEXT:          "tokLen": 1
1277 // CHECK-NEXT:         }
1278 // CHECK-NEXT:        },
1279 // CHECK-NEXT:        "type": {
1280 // CHECK-NEXT:         "qualType": "int"
1281 // CHECK-NEXT:        },
1282 // CHECK-NEXT:        "valueCategory": "rvalue",
1283 // CHECK-NEXT:        "castKind": "LValueToRValue",
1284 // CHECK-NEXT:        "inner": [
1285 // CHECK-NEXT:         {
1286 // CHECK-NEXT:          "id": "0x{{.*}}",
1287 // CHECK-NEXT:          "kind": "DeclRefExpr",
1288 // CHECK-NEXT:          "range": {
1289 // CHECK-NEXT:           "begin": {
1290 // CHECK-NEXT:            "offset": 343,
1291 // CHECK-NEXT:            "col": 8,
1292 // CHECK-NEXT:            "tokLen": 1
1293 // CHECK-NEXT:           },
1294 // CHECK-NEXT:           "end": {
1295 // CHECK-NEXT:            "offset": 343,
1296 // CHECK-NEXT:            "col": 8,
1297 // CHECK-NEXT:            "tokLen": 1
1298 // CHECK-NEXT:           }
1299 // CHECK-NEXT:          },
1300 // CHECK-NEXT:          "type": {
1301 // CHECK-NEXT:           "qualType": "int"
1302 // CHECK-NEXT:          },
1303 // CHECK-NEXT:          "valueCategory": "lvalue",
1304 // CHECK-NEXT:          "referencedDecl": {
1305 // CHECK-NEXT:           "id": "0x{{.*}}",
1306 // CHECK-NEXT:           "kind": "ParmVarDecl",
1307 // CHECK-NEXT:           "name": "b",
1308 // CHECK-NEXT:           "type": {
1309 // CHECK-NEXT:            "qualType": "int"
1310 // CHECK-NEXT:           }
1311 // CHECK-NEXT:          }
1312 // CHECK-NEXT:         }
1313 // CHECK-NEXT:        ]
1314 // CHECK-NEXT:       }
1315 // CHECK-NEXT:      ]
1316 // CHECK-NEXT:     },
1317 // CHECK-NEXT:     {
1318 // CHECK-NEXT:      "id": "0x{{.*}}",
1319 // CHECK-NEXT:      "kind": "BinaryOperator",
1320 // CHECK-NEXT:      "range": {
1321 // CHECK-NEXT:       "begin": {
1322 // CHECK-NEXT:        "offset": 375,
1323 // CHECK-NEXT:        "line": 23,
1324 // CHECK-NEXT:        "col": 3,
1325 // CHECK-NEXT:        "tokLen": 1
1326 // CHECK-NEXT:       },
1327 // CHECK-NEXT:       "end": {
1328 // CHECK-NEXT:        "offset": 379,
1329 // CHECK-NEXT:        "col": 7,
1330 // CHECK-NEXT:        "tokLen": 1
1331 // CHECK-NEXT:       }
1332 // CHECK-NEXT:      },
1333 // CHECK-NEXT:      "type": {
1334 // CHECK-NEXT:       "qualType": "int"
1335 // CHECK-NEXT:      },
1336 // CHECK-NEXT:      "valueCategory": "rvalue",
1337 // CHECK-NEXT:      "opcode": "|",
1338 // CHECK-NEXT:      "inner": [
1339 // CHECK-NEXT:       {
1340 // CHECK-NEXT:        "id": "0x{{.*}}",
1341 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1342 // CHECK-NEXT:        "range": {
1343 // CHECK-NEXT:         "begin": {
1344 // CHECK-NEXT:          "offset": 375,
1345 // CHECK-NEXT:          "col": 3,
1346 // CHECK-NEXT:          "tokLen": 1
1347 // CHECK-NEXT:         },
1348 // CHECK-NEXT:         "end": {
1349 // CHECK-NEXT:          "offset": 375,
1350 // CHECK-NEXT:          "col": 3,
1351 // CHECK-NEXT:          "tokLen": 1
1352 // CHECK-NEXT:         }
1353 // CHECK-NEXT:        },
1354 // CHECK-NEXT:        "type": {
1355 // CHECK-NEXT:         "qualType": "int"
1356 // CHECK-NEXT:        },
1357 // CHECK-NEXT:        "valueCategory": "rvalue",
1358 // CHECK-NEXT:        "castKind": "LValueToRValue",
1359 // CHECK-NEXT:        "inner": [
1360 // CHECK-NEXT:         {
1361 // CHECK-NEXT:          "id": "0x{{.*}}",
1362 // CHECK-NEXT:          "kind": "DeclRefExpr",
1363 // CHECK-NEXT:          "range": {
1364 // CHECK-NEXT:           "begin": {
1365 // CHECK-NEXT:            "offset": 375,
1366 // CHECK-NEXT:            "col": 3,
1367 // CHECK-NEXT:            "tokLen": 1
1368 // CHECK-NEXT:           },
1369 // CHECK-NEXT:           "end": {
1370 // CHECK-NEXT:            "offset": 375,
1371 // CHECK-NEXT:            "col": 3,
1372 // CHECK-NEXT:            "tokLen": 1
1373 // CHECK-NEXT:           }
1374 // CHECK-NEXT:          },
1375 // CHECK-NEXT:          "type": {
1376 // CHECK-NEXT:           "qualType": "int"
1377 // CHECK-NEXT:          },
1378 // CHECK-NEXT:          "valueCategory": "lvalue",
1379 // CHECK-NEXT:          "referencedDecl": {
1380 // CHECK-NEXT:           "id": "0x{{.*}}",
1381 // CHECK-NEXT:           "kind": "ParmVarDecl",
1382 // CHECK-NEXT:           "name": "a",
1383 // CHECK-NEXT:           "type": {
1384 // CHECK-NEXT:            "qualType": "int"
1385 // CHECK-NEXT:           }
1386 // CHECK-NEXT:          }
1387 // CHECK-NEXT:         }
1388 // CHECK-NEXT:        ]
1389 // CHECK-NEXT:       },
1390 // CHECK-NEXT:       {
1391 // CHECK-NEXT:        "id": "0x{{.*}}",
1392 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1393 // CHECK-NEXT:        "range": {
1394 // CHECK-NEXT:         "begin": {
1395 // CHECK-NEXT:          "offset": 379,
1396 // CHECK-NEXT:          "col": 7,
1397 // CHECK-NEXT:          "tokLen": 1
1398 // CHECK-NEXT:         },
1399 // CHECK-NEXT:         "end": {
1400 // CHECK-NEXT:          "offset": 379,
1401 // CHECK-NEXT:          "col": 7,
1402 // CHECK-NEXT:          "tokLen": 1
1403 // CHECK-NEXT:         }
1404 // CHECK-NEXT:        },
1405 // CHECK-NEXT:        "type": {
1406 // CHECK-NEXT:         "qualType": "int"
1407 // CHECK-NEXT:        },
1408 // CHECK-NEXT:        "valueCategory": "rvalue",
1409 // CHECK-NEXT:        "castKind": "LValueToRValue",
1410 // CHECK-NEXT:        "inner": [
1411 // CHECK-NEXT:         {
1412 // CHECK-NEXT:          "id": "0x{{.*}}",
1413 // CHECK-NEXT:          "kind": "DeclRefExpr",
1414 // CHECK-NEXT:          "range": {
1415 // CHECK-NEXT:           "begin": {
1416 // CHECK-NEXT:            "offset": 379,
1417 // CHECK-NEXT:            "col": 7,
1418 // CHECK-NEXT:            "tokLen": 1
1419 // CHECK-NEXT:           },
1420 // CHECK-NEXT:           "end": {
1421 // CHECK-NEXT:            "offset": 379,
1422 // CHECK-NEXT:            "col": 7,
1423 // CHECK-NEXT:            "tokLen": 1
1424 // CHECK-NEXT:           }
1425 // CHECK-NEXT:          },
1426 // CHECK-NEXT:          "type": {
1427 // CHECK-NEXT:           "qualType": "int"
1428 // CHECK-NEXT:          },
1429 // CHECK-NEXT:          "valueCategory": "lvalue",
1430 // CHECK-NEXT:          "referencedDecl": {
1431 // CHECK-NEXT:           "id": "0x{{.*}}",
1432 // CHECK-NEXT:           "kind": "ParmVarDecl",
1433 // CHECK-NEXT:           "name": "b",
1434 // CHECK-NEXT:           "type": {
1435 // CHECK-NEXT:            "qualType": "int"
1436 // CHECK-NEXT:           }
1437 // CHECK-NEXT:          }
1438 // CHECK-NEXT:         }
1439 // CHECK-NEXT:        ]
1440 // CHECK-NEXT:       }
1441 // CHECK-NEXT:      ]
1442 // CHECK-NEXT:     },
1443 // CHECK-NEXT:     {
1444 // CHECK-NEXT:      "id": "0x{{.*}}",
1445 // CHECK-NEXT:      "kind": "BinaryOperator",
1446 // CHECK-NEXT:      "range": {
1447 // CHECK-NEXT:       "begin": {
1448 // CHECK-NEXT:        "offset": 385,
1449 // CHECK-NEXT:        "line": 24,
1450 // CHECK-NEXT:        "col": 3,
1451 // CHECK-NEXT:        "tokLen": 1
1452 // CHECK-NEXT:       },
1453 // CHECK-NEXT:       "end": {
1454 // CHECK-NEXT:        "offset": 389,
1455 // CHECK-NEXT:        "col": 7,
1456 // CHECK-NEXT:        "tokLen": 1
1457 // CHECK-NEXT:       }
1458 // CHECK-NEXT:      },
1459 // CHECK-NEXT:      "type": {
1460 // CHECK-NEXT:       "qualType": "int"
1461 // CHECK-NEXT:      },
1462 // CHECK-NEXT:      "valueCategory": "rvalue",
1463 // CHECK-NEXT:      "opcode": "^",
1464 // CHECK-NEXT:      "inner": [
1465 // CHECK-NEXT:       {
1466 // CHECK-NEXT:        "id": "0x{{.*}}",
1467 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1468 // CHECK-NEXT:        "range": {
1469 // CHECK-NEXT:         "begin": {
1470 // CHECK-NEXT:          "offset": 385,
1471 // CHECK-NEXT:          "col": 3,
1472 // CHECK-NEXT:          "tokLen": 1
1473 // CHECK-NEXT:         },
1474 // CHECK-NEXT:         "end": {
1475 // CHECK-NEXT:          "offset": 385,
1476 // CHECK-NEXT:          "col": 3,
1477 // CHECK-NEXT:          "tokLen": 1
1478 // CHECK-NEXT:         }
1479 // CHECK-NEXT:        },
1480 // CHECK-NEXT:        "type": {
1481 // CHECK-NEXT:         "qualType": "int"
1482 // CHECK-NEXT:        },
1483 // CHECK-NEXT:        "valueCategory": "rvalue",
1484 // CHECK-NEXT:        "castKind": "LValueToRValue",
1485 // CHECK-NEXT:        "inner": [
1486 // CHECK-NEXT:         {
1487 // CHECK-NEXT:          "id": "0x{{.*}}",
1488 // CHECK-NEXT:          "kind": "DeclRefExpr",
1489 // CHECK-NEXT:          "range": {
1490 // CHECK-NEXT:           "begin": {
1491 // CHECK-NEXT:            "offset": 385,
1492 // CHECK-NEXT:            "col": 3,
1493 // CHECK-NEXT:            "tokLen": 1
1494 // CHECK-NEXT:           },
1495 // CHECK-NEXT:           "end": {
1496 // CHECK-NEXT:            "offset": 385,
1497 // CHECK-NEXT:            "col": 3,
1498 // CHECK-NEXT:            "tokLen": 1
1499 // CHECK-NEXT:           }
1500 // CHECK-NEXT:          },
1501 // CHECK-NEXT:          "type": {
1502 // CHECK-NEXT:           "qualType": "int"
1503 // CHECK-NEXT:          },
1504 // CHECK-NEXT:          "valueCategory": "lvalue",
1505 // CHECK-NEXT:          "referencedDecl": {
1506 // CHECK-NEXT:           "id": "0x{{.*}}",
1507 // CHECK-NEXT:           "kind": "ParmVarDecl",
1508 // CHECK-NEXT:           "name": "a",
1509 // CHECK-NEXT:           "type": {
1510 // CHECK-NEXT:            "qualType": "int"
1511 // CHECK-NEXT:           }
1512 // CHECK-NEXT:          }
1513 // CHECK-NEXT:         }
1514 // CHECK-NEXT:        ]
1515 // CHECK-NEXT:       },
1516 // CHECK-NEXT:       {
1517 // CHECK-NEXT:        "id": "0x{{.*}}",
1518 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1519 // CHECK-NEXT:        "range": {
1520 // CHECK-NEXT:         "begin": {
1521 // CHECK-NEXT:          "offset": 389,
1522 // CHECK-NEXT:          "col": 7,
1523 // CHECK-NEXT:          "tokLen": 1
1524 // CHECK-NEXT:         },
1525 // CHECK-NEXT:         "end": {
1526 // CHECK-NEXT:          "offset": 389,
1527 // CHECK-NEXT:          "col": 7,
1528 // CHECK-NEXT:          "tokLen": 1
1529 // CHECK-NEXT:         }
1530 // CHECK-NEXT:        },
1531 // CHECK-NEXT:        "type": {
1532 // CHECK-NEXT:         "qualType": "int"
1533 // CHECK-NEXT:        },
1534 // CHECK-NEXT:        "valueCategory": "rvalue",
1535 // CHECK-NEXT:        "castKind": "LValueToRValue",
1536 // CHECK-NEXT:        "inner": [
1537 // CHECK-NEXT:         {
1538 // CHECK-NEXT:          "id": "0x{{.*}}",
1539 // CHECK-NEXT:          "kind": "DeclRefExpr",
1540 // CHECK-NEXT:          "range": {
1541 // CHECK-NEXT:           "begin": {
1542 // CHECK-NEXT:            "offset": 389,
1543 // CHECK-NEXT:            "col": 7,
1544 // CHECK-NEXT:            "tokLen": 1
1545 // CHECK-NEXT:           },
1546 // CHECK-NEXT:           "end": {
1547 // CHECK-NEXT:            "offset": 389,
1548 // CHECK-NEXT:            "col": 7,
1549 // CHECK-NEXT:            "tokLen": 1
1550 // CHECK-NEXT:           }
1551 // CHECK-NEXT:          },
1552 // CHECK-NEXT:          "type": {
1553 // CHECK-NEXT:           "qualType": "int"
1554 // CHECK-NEXT:          },
1555 // CHECK-NEXT:          "valueCategory": "lvalue",
1556 // CHECK-NEXT:          "referencedDecl": {
1557 // CHECK-NEXT:           "id": "0x{{.*}}",
1558 // CHECK-NEXT:           "kind": "ParmVarDecl",
1559 // CHECK-NEXT:           "name": "b",
1560 // CHECK-NEXT:           "type": {
1561 // CHECK-NEXT:            "qualType": "int"
1562 // CHECK-NEXT:           }
1563 // CHECK-NEXT:          }
1564 // CHECK-NEXT:         }
1565 // CHECK-NEXT:        ]
1566 // CHECK-NEXT:       }
1567 // CHECK-NEXT:      ]
1568 // CHECK-NEXT:     },
1569 // CHECK-NEXT:     {
1570 // CHECK-NEXT:      "id": "0x{{.*}}",
1571 // CHECK-NEXT:      "kind": "BinaryOperator",
1572 // CHECK-NEXT:      "range": {
1573 // CHECK-NEXT:       "begin": {
1574 // CHECK-NEXT:        "offset": 395,
1575 // CHECK-NEXT:        "line": 25,
1576 // CHECK-NEXT:        "col": 3,
1577 // CHECK-NEXT:        "tokLen": 1
1578 // CHECK-NEXT:       },
1579 // CHECK-NEXT:       "end": {
1580 // CHECK-NEXT:        "offset": 399,
1581 // CHECK-NEXT:        "col": 7,
1582 // CHECK-NEXT:        "tokLen": 1
1583 // CHECK-NEXT:       }
1584 // CHECK-NEXT:      },
1585 // CHECK-NEXT:      "type": {
1586 // CHECK-NEXT:       "qualType": "int"
1587 // CHECK-NEXT:      },
1588 // CHECK-NEXT:      "valueCategory": "rvalue",
1589 // CHECK-NEXT:      "opcode": "&",
1590 // CHECK-NEXT:      "inner": [
1591 // CHECK-NEXT:       {
1592 // CHECK-NEXT:        "id": "0x{{.*}}",
1593 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1594 // CHECK-NEXT:        "range": {
1595 // CHECK-NEXT:         "begin": {
1596 // CHECK-NEXT:          "offset": 395,
1597 // CHECK-NEXT:          "col": 3,
1598 // CHECK-NEXT:          "tokLen": 1
1599 // CHECK-NEXT:         },
1600 // CHECK-NEXT:         "end": {
1601 // CHECK-NEXT:          "offset": 395,
1602 // CHECK-NEXT:          "col": 3,
1603 // CHECK-NEXT:          "tokLen": 1
1604 // CHECK-NEXT:         }
1605 // CHECK-NEXT:        },
1606 // CHECK-NEXT:        "type": {
1607 // CHECK-NEXT:         "qualType": "int"
1608 // CHECK-NEXT:        },
1609 // CHECK-NEXT:        "valueCategory": "rvalue",
1610 // CHECK-NEXT:        "castKind": "LValueToRValue",
1611 // CHECK-NEXT:        "inner": [
1612 // CHECK-NEXT:         {
1613 // CHECK-NEXT:          "id": "0x{{.*}}",
1614 // CHECK-NEXT:          "kind": "DeclRefExpr",
1615 // CHECK-NEXT:          "range": {
1616 // CHECK-NEXT:           "begin": {
1617 // CHECK-NEXT:            "offset": 395,
1618 // CHECK-NEXT:            "col": 3,
1619 // CHECK-NEXT:            "tokLen": 1
1620 // CHECK-NEXT:           },
1621 // CHECK-NEXT:           "end": {
1622 // CHECK-NEXT:            "offset": 395,
1623 // CHECK-NEXT:            "col": 3,
1624 // CHECK-NEXT:            "tokLen": 1
1625 // CHECK-NEXT:           }
1626 // CHECK-NEXT:          },
1627 // CHECK-NEXT:          "type": {
1628 // CHECK-NEXT:           "qualType": "int"
1629 // CHECK-NEXT:          },
1630 // CHECK-NEXT:          "valueCategory": "lvalue",
1631 // CHECK-NEXT:          "referencedDecl": {
1632 // CHECK-NEXT:           "id": "0x{{.*}}",
1633 // CHECK-NEXT:           "kind": "ParmVarDecl",
1634 // CHECK-NEXT:           "name": "a",
1635 // CHECK-NEXT:           "type": {
1636 // CHECK-NEXT:            "qualType": "int"
1637 // CHECK-NEXT:           }
1638 // CHECK-NEXT:          }
1639 // CHECK-NEXT:         }
1640 // CHECK-NEXT:        ]
1641 // CHECK-NEXT:       },
1642 // CHECK-NEXT:       {
1643 // CHECK-NEXT:        "id": "0x{{.*}}",
1644 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1645 // CHECK-NEXT:        "range": {
1646 // CHECK-NEXT:         "begin": {
1647 // CHECK-NEXT:          "offset": 399,
1648 // CHECK-NEXT:          "col": 7,
1649 // CHECK-NEXT:          "tokLen": 1
1650 // CHECK-NEXT:         },
1651 // CHECK-NEXT:         "end": {
1652 // CHECK-NEXT:          "offset": 399,
1653 // CHECK-NEXT:          "col": 7,
1654 // CHECK-NEXT:          "tokLen": 1
1655 // CHECK-NEXT:         }
1656 // CHECK-NEXT:        },
1657 // CHECK-NEXT:        "type": {
1658 // CHECK-NEXT:         "qualType": "int"
1659 // CHECK-NEXT:        },
1660 // CHECK-NEXT:        "valueCategory": "rvalue",
1661 // CHECK-NEXT:        "castKind": "LValueToRValue",
1662 // CHECK-NEXT:        "inner": [
1663 // CHECK-NEXT:         {
1664 // CHECK-NEXT:          "id": "0x{{.*}}",
1665 // CHECK-NEXT:          "kind": "DeclRefExpr",
1666 // CHECK-NEXT:          "range": {
1667 // CHECK-NEXT:           "begin": {
1668 // CHECK-NEXT:            "offset": 399,
1669 // CHECK-NEXT:            "col": 7,
1670 // CHECK-NEXT:            "tokLen": 1
1671 // CHECK-NEXT:           },
1672 // CHECK-NEXT:           "end": {
1673 // CHECK-NEXT:            "offset": 399,
1674 // CHECK-NEXT:            "col": 7,
1675 // CHECK-NEXT:            "tokLen": 1
1676 // CHECK-NEXT:           }
1677 // CHECK-NEXT:          },
1678 // CHECK-NEXT:          "type": {
1679 // CHECK-NEXT:           "qualType": "int"
1680 // CHECK-NEXT:          },
1681 // CHECK-NEXT:          "valueCategory": "lvalue",
1682 // CHECK-NEXT:          "referencedDecl": {
1683 // CHECK-NEXT:           "id": "0x{{.*}}",
1684 // CHECK-NEXT:           "kind": "ParmVarDecl",
1685 // CHECK-NEXT:           "name": "b",
1686 // CHECK-NEXT:           "type": {
1687 // CHECK-NEXT:            "qualType": "int"
1688 // CHECK-NEXT:           }
1689 // CHECK-NEXT:          }
1690 // CHECK-NEXT:         }
1691 // CHECK-NEXT:        ]
1692 // CHECK-NEXT:       }
1693 // CHECK-NEXT:      ]
1694 // CHECK-NEXT:     },
1695 // CHECK-NEXT:     {
1696 // CHECK-NEXT:      "id": "0x{{.*}}",
1697 // CHECK-NEXT:      "kind": "BinaryOperator",
1698 // CHECK-NEXT:      "range": {
1699 // CHECK-NEXT:       "begin": {
1700 // CHECK-NEXT:        "offset": 432,
1701 // CHECK-NEXT:        "line": 28,
1702 // CHECK-NEXT:        "col": 3,
1703 // CHECK-NEXT:        "tokLen": 1
1704 // CHECK-NEXT:       },
1705 // CHECK-NEXT:       "end": {
1706 // CHECK-NEXT:        "offset": 437,
1707 // CHECK-NEXT:        "col": 8,
1708 // CHECK-NEXT:        "tokLen": 1
1709 // CHECK-NEXT:       }
1710 // CHECK-NEXT:      },
1711 // CHECK-NEXT:      "type": {
1712 // CHECK-NEXT:       "qualType": "int"
1713 // CHECK-NEXT:      },
1714 // CHECK-NEXT:      "valueCategory": "rvalue",
1715 // CHECK-NEXT:      "opcode": "==",
1716 // CHECK-NEXT:      "inner": [
1717 // CHECK-NEXT:       {
1718 // CHECK-NEXT:        "id": "0x{{.*}}",
1719 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1720 // CHECK-NEXT:        "range": {
1721 // CHECK-NEXT:         "begin": {
1722 // CHECK-NEXT:          "offset": 432,
1723 // CHECK-NEXT:          "col": 3,
1724 // CHECK-NEXT:          "tokLen": 1
1725 // CHECK-NEXT:         },
1726 // CHECK-NEXT:         "end": {
1727 // CHECK-NEXT:          "offset": 432,
1728 // CHECK-NEXT:          "col": 3,
1729 // CHECK-NEXT:          "tokLen": 1
1730 // CHECK-NEXT:         }
1731 // CHECK-NEXT:        },
1732 // CHECK-NEXT:        "type": {
1733 // CHECK-NEXT:         "qualType": "int"
1734 // CHECK-NEXT:        },
1735 // CHECK-NEXT:        "valueCategory": "rvalue",
1736 // CHECK-NEXT:        "castKind": "LValueToRValue",
1737 // CHECK-NEXT:        "inner": [
1738 // CHECK-NEXT:         {
1739 // CHECK-NEXT:          "id": "0x{{.*}}",
1740 // CHECK-NEXT:          "kind": "DeclRefExpr",
1741 // CHECK-NEXT:          "range": {
1742 // CHECK-NEXT:           "begin": {
1743 // CHECK-NEXT:            "offset": 432,
1744 // CHECK-NEXT:            "col": 3,
1745 // CHECK-NEXT:            "tokLen": 1
1746 // CHECK-NEXT:           },
1747 // CHECK-NEXT:           "end": {
1748 // CHECK-NEXT:            "offset": 432,
1749 // CHECK-NEXT:            "col": 3,
1750 // CHECK-NEXT:            "tokLen": 1
1751 // CHECK-NEXT:           }
1752 // CHECK-NEXT:          },
1753 // CHECK-NEXT:          "type": {
1754 // CHECK-NEXT:           "qualType": "int"
1755 // CHECK-NEXT:          },
1756 // CHECK-NEXT:          "valueCategory": "lvalue",
1757 // CHECK-NEXT:          "referencedDecl": {
1758 // CHECK-NEXT:           "id": "0x{{.*}}",
1759 // CHECK-NEXT:           "kind": "ParmVarDecl",
1760 // CHECK-NEXT:           "name": "a",
1761 // CHECK-NEXT:           "type": {
1762 // CHECK-NEXT:            "qualType": "int"
1763 // CHECK-NEXT:           }
1764 // CHECK-NEXT:          }
1765 // CHECK-NEXT:         }
1766 // CHECK-NEXT:        ]
1767 // CHECK-NEXT:       },
1768 // CHECK-NEXT:       {
1769 // CHECK-NEXT:        "id": "0x{{.*}}",
1770 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1771 // CHECK-NEXT:        "range": {
1772 // CHECK-NEXT:         "begin": {
1773 // CHECK-NEXT:          "offset": 437,
1774 // CHECK-NEXT:          "col": 8,
1775 // CHECK-NEXT:          "tokLen": 1
1776 // CHECK-NEXT:         },
1777 // CHECK-NEXT:         "end": {
1778 // CHECK-NEXT:          "offset": 437,
1779 // CHECK-NEXT:          "col": 8,
1780 // CHECK-NEXT:          "tokLen": 1
1781 // CHECK-NEXT:         }
1782 // CHECK-NEXT:        },
1783 // CHECK-NEXT:        "type": {
1784 // CHECK-NEXT:         "qualType": "int"
1785 // CHECK-NEXT:        },
1786 // CHECK-NEXT:        "valueCategory": "rvalue",
1787 // CHECK-NEXT:        "castKind": "LValueToRValue",
1788 // CHECK-NEXT:        "inner": [
1789 // CHECK-NEXT:         {
1790 // CHECK-NEXT:          "id": "0x{{.*}}",
1791 // CHECK-NEXT:          "kind": "DeclRefExpr",
1792 // CHECK-NEXT:          "range": {
1793 // CHECK-NEXT:           "begin": {
1794 // CHECK-NEXT:            "offset": 437,
1795 // CHECK-NEXT:            "col": 8,
1796 // CHECK-NEXT:            "tokLen": 1
1797 // CHECK-NEXT:           },
1798 // CHECK-NEXT:           "end": {
1799 // CHECK-NEXT:            "offset": 437,
1800 // CHECK-NEXT:            "col": 8,
1801 // CHECK-NEXT:            "tokLen": 1
1802 // CHECK-NEXT:           }
1803 // CHECK-NEXT:          },
1804 // CHECK-NEXT:          "type": {
1805 // CHECK-NEXT:           "qualType": "int"
1806 // CHECK-NEXT:          },
1807 // CHECK-NEXT:          "valueCategory": "lvalue",
1808 // CHECK-NEXT:          "referencedDecl": {
1809 // CHECK-NEXT:           "id": "0x{{.*}}",
1810 // CHECK-NEXT:           "kind": "ParmVarDecl",
1811 // CHECK-NEXT:           "name": "b",
1812 // CHECK-NEXT:           "type": {
1813 // CHECK-NEXT:            "qualType": "int"
1814 // CHECK-NEXT:           }
1815 // CHECK-NEXT:          }
1816 // CHECK-NEXT:         }
1817 // CHECK-NEXT:        ]
1818 // CHECK-NEXT:       }
1819 // CHECK-NEXT:      ]
1820 // CHECK-NEXT:     },
1821 // CHECK-NEXT:     {
1822 // CHECK-NEXT:      "id": "0x{{.*}}",
1823 // CHECK-NEXT:      "kind": "BinaryOperator",
1824 // CHECK-NEXT:      "range": {
1825 // CHECK-NEXT:       "begin": {
1826 // CHECK-NEXT:        "offset": 443,
1827 // CHECK-NEXT:        "line": 29,
1828 // CHECK-NEXT:        "col": 3,
1829 // CHECK-NEXT:        "tokLen": 1
1830 // CHECK-NEXT:       },
1831 // CHECK-NEXT:       "end": {
1832 // CHECK-NEXT:        "offset": 448,
1833 // CHECK-NEXT:        "col": 8,
1834 // CHECK-NEXT:        "tokLen": 1
1835 // CHECK-NEXT:       }
1836 // CHECK-NEXT:      },
1837 // CHECK-NEXT:      "type": {
1838 // CHECK-NEXT:       "qualType": "int"
1839 // CHECK-NEXT:      },
1840 // CHECK-NEXT:      "valueCategory": "rvalue",
1841 // CHECK-NEXT:      "opcode": "!=",
1842 // CHECK-NEXT:      "inner": [
1843 // CHECK-NEXT:       {
1844 // CHECK-NEXT:        "id": "0x{{.*}}",
1845 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1846 // CHECK-NEXT:        "range": {
1847 // CHECK-NEXT:         "begin": {
1848 // CHECK-NEXT:          "offset": 443,
1849 // CHECK-NEXT:          "col": 3,
1850 // CHECK-NEXT:          "tokLen": 1
1851 // CHECK-NEXT:         },
1852 // CHECK-NEXT:         "end": {
1853 // CHECK-NEXT:          "offset": 443,
1854 // CHECK-NEXT:          "col": 3,
1855 // CHECK-NEXT:          "tokLen": 1
1856 // CHECK-NEXT:         }
1857 // CHECK-NEXT:        },
1858 // CHECK-NEXT:        "type": {
1859 // CHECK-NEXT:         "qualType": "int"
1860 // CHECK-NEXT:        },
1861 // CHECK-NEXT:        "valueCategory": "rvalue",
1862 // CHECK-NEXT:        "castKind": "LValueToRValue",
1863 // CHECK-NEXT:        "inner": [
1864 // CHECK-NEXT:         {
1865 // CHECK-NEXT:          "id": "0x{{.*}}",
1866 // CHECK-NEXT:          "kind": "DeclRefExpr",
1867 // CHECK-NEXT:          "range": {
1868 // CHECK-NEXT:           "begin": {
1869 // CHECK-NEXT:            "offset": 443,
1870 // CHECK-NEXT:            "col": 3,
1871 // CHECK-NEXT:            "tokLen": 1
1872 // CHECK-NEXT:           },
1873 // CHECK-NEXT:           "end": {
1874 // CHECK-NEXT:            "offset": 443,
1875 // CHECK-NEXT:            "col": 3,
1876 // CHECK-NEXT:            "tokLen": 1
1877 // CHECK-NEXT:           }
1878 // CHECK-NEXT:          },
1879 // CHECK-NEXT:          "type": {
1880 // CHECK-NEXT:           "qualType": "int"
1881 // CHECK-NEXT:          },
1882 // CHECK-NEXT:          "valueCategory": "lvalue",
1883 // CHECK-NEXT:          "referencedDecl": {
1884 // CHECK-NEXT:           "id": "0x{{.*}}",
1885 // CHECK-NEXT:           "kind": "ParmVarDecl",
1886 // CHECK-NEXT:           "name": "a",
1887 // CHECK-NEXT:           "type": {
1888 // CHECK-NEXT:            "qualType": "int"
1889 // CHECK-NEXT:           }
1890 // CHECK-NEXT:          }
1891 // CHECK-NEXT:         }
1892 // CHECK-NEXT:        ]
1893 // CHECK-NEXT:       },
1894 // CHECK-NEXT:       {
1895 // CHECK-NEXT:        "id": "0x{{.*}}",
1896 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1897 // CHECK-NEXT:        "range": {
1898 // CHECK-NEXT:         "begin": {
1899 // CHECK-NEXT:          "offset": 448,
1900 // CHECK-NEXT:          "col": 8,
1901 // CHECK-NEXT:          "tokLen": 1
1902 // CHECK-NEXT:         },
1903 // CHECK-NEXT:         "end": {
1904 // CHECK-NEXT:          "offset": 448,
1905 // CHECK-NEXT:          "col": 8,
1906 // CHECK-NEXT:          "tokLen": 1
1907 // CHECK-NEXT:         }
1908 // CHECK-NEXT:        },
1909 // CHECK-NEXT:        "type": {
1910 // CHECK-NEXT:         "qualType": "int"
1911 // CHECK-NEXT:        },
1912 // CHECK-NEXT:        "valueCategory": "rvalue",
1913 // CHECK-NEXT:        "castKind": "LValueToRValue",
1914 // CHECK-NEXT:        "inner": [
1915 // CHECK-NEXT:         {
1916 // CHECK-NEXT:          "id": "0x{{.*}}",
1917 // CHECK-NEXT:          "kind": "DeclRefExpr",
1918 // CHECK-NEXT:          "range": {
1919 // CHECK-NEXT:           "begin": {
1920 // CHECK-NEXT:            "offset": 448,
1921 // CHECK-NEXT:            "col": 8,
1922 // CHECK-NEXT:            "tokLen": 1
1923 // CHECK-NEXT:           },
1924 // CHECK-NEXT:           "end": {
1925 // CHECK-NEXT:            "offset": 448,
1926 // CHECK-NEXT:            "col": 8,
1927 // CHECK-NEXT:            "tokLen": 1
1928 // CHECK-NEXT:           }
1929 // CHECK-NEXT:          },
1930 // CHECK-NEXT:          "type": {
1931 // CHECK-NEXT:           "qualType": "int"
1932 // CHECK-NEXT:          },
1933 // CHECK-NEXT:          "valueCategory": "lvalue",
1934 // CHECK-NEXT:          "referencedDecl": {
1935 // CHECK-NEXT:           "id": "0x{{.*}}",
1936 // CHECK-NEXT:           "kind": "ParmVarDecl",
1937 // CHECK-NEXT:           "name": "b",
1938 // CHECK-NEXT:           "type": {
1939 // CHECK-NEXT:            "qualType": "int"
1940 // CHECK-NEXT:           }
1941 // CHECK-NEXT:          }
1942 // CHECK-NEXT:         }
1943 // CHECK-NEXT:        ]
1944 // CHECK-NEXT:       }
1945 // CHECK-NEXT:      ]
1946 // CHECK-NEXT:     },
1947 // CHECK-NEXT:     {
1948 // CHECK-NEXT:      "id": "0x{{.*}}",
1949 // CHECK-NEXT:      "kind": "BinaryOperator",
1950 // CHECK-NEXT:      "range": {
1951 // CHECK-NEXT:       "begin": {
1952 // CHECK-NEXT:        "offset": 483,
1953 // CHECK-NEXT:        "line": 32,
1954 // CHECK-NEXT:        "col": 3,
1955 // CHECK-NEXT:        "tokLen": 1
1956 // CHECK-NEXT:       },
1957 // CHECK-NEXT:       "end": {
1958 // CHECK-NEXT:        "offset": 487,
1959 // CHECK-NEXT:        "col": 7,
1960 // CHECK-NEXT:        "tokLen": 1
1961 // CHECK-NEXT:       }
1962 // CHECK-NEXT:      },
1963 // CHECK-NEXT:      "type": {
1964 // CHECK-NEXT:       "qualType": "int"
1965 // CHECK-NEXT:      },
1966 // CHECK-NEXT:      "valueCategory": "rvalue",
1967 // CHECK-NEXT:      "opcode": "<",
1968 // CHECK-NEXT:      "inner": [
1969 // CHECK-NEXT:       {
1970 // CHECK-NEXT:        "id": "0x{{.*}}",
1971 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
1972 // CHECK-NEXT:        "range": {
1973 // CHECK-NEXT:         "begin": {
1974 // CHECK-NEXT:          "offset": 483,
1975 // CHECK-NEXT:          "col": 3,
1976 // CHECK-NEXT:          "tokLen": 1
1977 // CHECK-NEXT:         },
1978 // CHECK-NEXT:         "end": {
1979 // CHECK-NEXT:          "offset": 483,
1980 // CHECK-NEXT:          "col": 3,
1981 // CHECK-NEXT:          "tokLen": 1
1982 // CHECK-NEXT:         }
1983 // CHECK-NEXT:        },
1984 // CHECK-NEXT:        "type": {
1985 // CHECK-NEXT:         "qualType": "int"
1986 // CHECK-NEXT:        },
1987 // CHECK-NEXT:        "valueCategory": "rvalue",
1988 // CHECK-NEXT:        "castKind": "LValueToRValue",
1989 // CHECK-NEXT:        "inner": [
1990 // CHECK-NEXT:         {
1991 // CHECK-NEXT:          "id": "0x{{.*}}",
1992 // CHECK-NEXT:          "kind": "DeclRefExpr",
1993 // CHECK-NEXT:          "range": {
1994 // CHECK-NEXT:           "begin": {
1995 // CHECK-NEXT:            "offset": 483,
1996 // CHECK-NEXT:            "col": 3,
1997 // CHECK-NEXT:            "tokLen": 1
1998 // CHECK-NEXT:           },
1999 // CHECK-NEXT:           "end": {
2000 // CHECK-NEXT:            "offset": 483,
2001 // CHECK-NEXT:            "col": 3,
2002 // CHECK-NEXT:            "tokLen": 1
2003 // CHECK-NEXT:           }
2004 // CHECK-NEXT:          },
2005 // CHECK-NEXT:          "type": {
2006 // CHECK-NEXT:           "qualType": "int"
2007 // CHECK-NEXT:          },
2008 // CHECK-NEXT:          "valueCategory": "lvalue",
2009 // CHECK-NEXT:          "referencedDecl": {
2010 // CHECK-NEXT:           "id": "0x{{.*}}",
2011 // CHECK-NEXT:           "kind": "ParmVarDecl",
2012 // CHECK-NEXT:           "name": "a",
2013 // CHECK-NEXT:           "type": {
2014 // CHECK-NEXT:            "qualType": "int"
2015 // CHECK-NEXT:           }
2016 // CHECK-NEXT:          }
2017 // CHECK-NEXT:         }
2018 // CHECK-NEXT:        ]
2019 // CHECK-NEXT:       },
2020 // CHECK-NEXT:       {
2021 // CHECK-NEXT:        "id": "0x{{.*}}",
2022 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2023 // CHECK-NEXT:        "range": {
2024 // CHECK-NEXT:         "begin": {
2025 // CHECK-NEXT:          "offset": 487,
2026 // CHECK-NEXT:          "col": 7,
2027 // CHECK-NEXT:          "tokLen": 1
2028 // CHECK-NEXT:         },
2029 // CHECK-NEXT:         "end": {
2030 // CHECK-NEXT:          "offset": 487,
2031 // CHECK-NEXT:          "col": 7,
2032 // CHECK-NEXT:          "tokLen": 1
2033 // CHECK-NEXT:         }
2034 // CHECK-NEXT:        },
2035 // CHECK-NEXT:        "type": {
2036 // CHECK-NEXT:         "qualType": "int"
2037 // CHECK-NEXT:        },
2038 // CHECK-NEXT:        "valueCategory": "rvalue",
2039 // CHECK-NEXT:        "castKind": "LValueToRValue",
2040 // CHECK-NEXT:        "inner": [
2041 // CHECK-NEXT:         {
2042 // CHECK-NEXT:          "id": "0x{{.*}}",
2043 // CHECK-NEXT:          "kind": "DeclRefExpr",
2044 // CHECK-NEXT:          "range": {
2045 // CHECK-NEXT:           "begin": {
2046 // CHECK-NEXT:            "offset": 487,
2047 // CHECK-NEXT:            "col": 7,
2048 // CHECK-NEXT:            "tokLen": 1
2049 // CHECK-NEXT:           },
2050 // CHECK-NEXT:           "end": {
2051 // CHECK-NEXT:            "offset": 487,
2052 // CHECK-NEXT:            "col": 7,
2053 // CHECK-NEXT:            "tokLen": 1
2054 // CHECK-NEXT:           }
2055 // CHECK-NEXT:          },
2056 // CHECK-NEXT:          "type": {
2057 // CHECK-NEXT:           "qualType": "int"
2058 // CHECK-NEXT:          },
2059 // CHECK-NEXT:          "valueCategory": "lvalue",
2060 // CHECK-NEXT:          "referencedDecl": {
2061 // CHECK-NEXT:           "id": "0x{{.*}}",
2062 // CHECK-NEXT:           "kind": "ParmVarDecl",
2063 // CHECK-NEXT:           "name": "b",
2064 // CHECK-NEXT:           "type": {
2065 // CHECK-NEXT:            "qualType": "int"
2066 // CHECK-NEXT:           }
2067 // CHECK-NEXT:          }
2068 // CHECK-NEXT:         }
2069 // CHECK-NEXT:        ]
2070 // CHECK-NEXT:       }
2071 // CHECK-NEXT:      ]
2072 // CHECK-NEXT:     },
2073 // CHECK-NEXT:     {
2074 // CHECK-NEXT:      "id": "0x{{.*}}",
2075 // CHECK-NEXT:      "kind": "BinaryOperator",
2076 // CHECK-NEXT:      "range": {
2077 // CHECK-NEXT:       "begin": {
2078 // CHECK-NEXT:        "offset": 493,
2079 // CHECK-NEXT:        "line": 33,
2080 // CHECK-NEXT:        "col": 3,
2081 // CHECK-NEXT:        "tokLen": 1
2082 // CHECK-NEXT:       },
2083 // CHECK-NEXT:       "end": {
2084 // CHECK-NEXT:        "offset": 497,
2085 // CHECK-NEXT:        "col": 7,
2086 // CHECK-NEXT:        "tokLen": 1
2087 // CHECK-NEXT:       }
2088 // CHECK-NEXT:      },
2089 // CHECK-NEXT:      "type": {
2090 // CHECK-NEXT:       "qualType": "int"
2091 // CHECK-NEXT:      },
2092 // CHECK-NEXT:      "valueCategory": "rvalue",
2093 // CHECK-NEXT:      "opcode": ">",
2094 // CHECK-NEXT:      "inner": [
2095 // CHECK-NEXT:       {
2096 // CHECK-NEXT:        "id": "0x{{.*}}",
2097 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2098 // CHECK-NEXT:        "range": {
2099 // CHECK-NEXT:         "begin": {
2100 // CHECK-NEXT:          "offset": 493,
2101 // CHECK-NEXT:          "col": 3,
2102 // CHECK-NEXT:          "tokLen": 1
2103 // CHECK-NEXT:         },
2104 // CHECK-NEXT:         "end": {
2105 // CHECK-NEXT:          "offset": 493,
2106 // CHECK-NEXT:          "col": 3,
2107 // CHECK-NEXT:          "tokLen": 1
2108 // CHECK-NEXT:         }
2109 // CHECK-NEXT:        },
2110 // CHECK-NEXT:        "type": {
2111 // CHECK-NEXT:         "qualType": "int"
2112 // CHECK-NEXT:        },
2113 // CHECK-NEXT:        "valueCategory": "rvalue",
2114 // CHECK-NEXT:        "castKind": "LValueToRValue",
2115 // CHECK-NEXT:        "inner": [
2116 // CHECK-NEXT:         {
2117 // CHECK-NEXT:          "id": "0x{{.*}}",
2118 // CHECK-NEXT:          "kind": "DeclRefExpr",
2119 // CHECK-NEXT:          "range": {
2120 // CHECK-NEXT:           "begin": {
2121 // CHECK-NEXT:            "offset": 493,
2122 // CHECK-NEXT:            "col": 3,
2123 // CHECK-NEXT:            "tokLen": 1
2124 // CHECK-NEXT:           },
2125 // CHECK-NEXT:           "end": {
2126 // CHECK-NEXT:            "offset": 493,
2127 // CHECK-NEXT:            "col": 3,
2128 // CHECK-NEXT:            "tokLen": 1
2129 // CHECK-NEXT:           }
2130 // CHECK-NEXT:          },
2131 // CHECK-NEXT:          "type": {
2132 // CHECK-NEXT:           "qualType": "int"
2133 // CHECK-NEXT:          },
2134 // CHECK-NEXT:          "valueCategory": "lvalue",
2135 // CHECK-NEXT:          "referencedDecl": {
2136 // CHECK-NEXT:           "id": "0x{{.*}}",
2137 // CHECK-NEXT:           "kind": "ParmVarDecl",
2138 // CHECK-NEXT:           "name": "a",
2139 // CHECK-NEXT:           "type": {
2140 // CHECK-NEXT:            "qualType": "int"
2141 // CHECK-NEXT:           }
2142 // CHECK-NEXT:          }
2143 // CHECK-NEXT:         }
2144 // CHECK-NEXT:        ]
2145 // CHECK-NEXT:       },
2146 // CHECK-NEXT:       {
2147 // CHECK-NEXT:        "id": "0x{{.*}}",
2148 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2149 // CHECK-NEXT:        "range": {
2150 // CHECK-NEXT:         "begin": {
2151 // CHECK-NEXT:          "offset": 497,
2152 // CHECK-NEXT:          "col": 7,
2153 // CHECK-NEXT:          "tokLen": 1
2154 // CHECK-NEXT:         },
2155 // CHECK-NEXT:         "end": {
2156 // CHECK-NEXT:          "offset": 497,
2157 // CHECK-NEXT:          "col": 7,
2158 // CHECK-NEXT:          "tokLen": 1
2159 // CHECK-NEXT:         }
2160 // CHECK-NEXT:        },
2161 // CHECK-NEXT:        "type": {
2162 // CHECK-NEXT:         "qualType": "int"
2163 // CHECK-NEXT:        },
2164 // CHECK-NEXT:        "valueCategory": "rvalue",
2165 // CHECK-NEXT:        "castKind": "LValueToRValue",
2166 // CHECK-NEXT:        "inner": [
2167 // CHECK-NEXT:         {
2168 // CHECK-NEXT:          "id": "0x{{.*}}",
2169 // CHECK-NEXT:          "kind": "DeclRefExpr",
2170 // CHECK-NEXT:          "range": {
2171 // CHECK-NEXT:           "begin": {
2172 // CHECK-NEXT:            "offset": 497,
2173 // CHECK-NEXT:            "col": 7,
2174 // CHECK-NEXT:            "tokLen": 1
2175 // CHECK-NEXT:           },
2176 // CHECK-NEXT:           "end": {
2177 // CHECK-NEXT:            "offset": 497,
2178 // CHECK-NEXT:            "col": 7,
2179 // CHECK-NEXT:            "tokLen": 1
2180 // CHECK-NEXT:           }
2181 // CHECK-NEXT:          },
2182 // CHECK-NEXT:          "type": {
2183 // CHECK-NEXT:           "qualType": "int"
2184 // CHECK-NEXT:          },
2185 // CHECK-NEXT:          "valueCategory": "lvalue",
2186 // CHECK-NEXT:          "referencedDecl": {
2187 // CHECK-NEXT:           "id": "0x{{.*}}",
2188 // CHECK-NEXT:           "kind": "ParmVarDecl",
2189 // CHECK-NEXT:           "name": "b",
2190 // CHECK-NEXT:           "type": {
2191 // CHECK-NEXT:            "qualType": "int"
2192 // CHECK-NEXT:           }
2193 // CHECK-NEXT:          }
2194 // CHECK-NEXT:         }
2195 // CHECK-NEXT:        ]
2196 // CHECK-NEXT:       }
2197 // CHECK-NEXT:      ]
2198 // CHECK-NEXT:     },
2199 // CHECK-NEXT:     {
2200 // CHECK-NEXT:      "id": "0x{{.*}}",
2201 // CHECK-NEXT:      "kind": "BinaryOperator",
2202 // CHECK-NEXT:      "range": {
2203 // CHECK-NEXT:       "begin": {
2204 // CHECK-NEXT:        "offset": 503,
2205 // CHECK-NEXT:        "line": 34,
2206 // CHECK-NEXT:        "col": 3,
2207 // CHECK-NEXT:        "tokLen": 1
2208 // CHECK-NEXT:       },
2209 // CHECK-NEXT:       "end": {
2210 // CHECK-NEXT:        "offset": 508,
2211 // CHECK-NEXT:        "col": 8,
2212 // CHECK-NEXT:        "tokLen": 1
2213 // CHECK-NEXT:       }
2214 // CHECK-NEXT:      },
2215 // CHECK-NEXT:      "type": {
2216 // CHECK-NEXT:       "qualType": "int"
2217 // CHECK-NEXT:      },
2218 // CHECK-NEXT:      "valueCategory": "rvalue",
2219 // CHECK-NEXT:      "opcode": "<=",
2220 // CHECK-NEXT:      "inner": [
2221 // CHECK-NEXT:       {
2222 // CHECK-NEXT:        "id": "0x{{.*}}",
2223 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2224 // CHECK-NEXT:        "range": {
2225 // CHECK-NEXT:         "begin": {
2226 // CHECK-NEXT:          "offset": 503,
2227 // CHECK-NEXT:          "col": 3,
2228 // CHECK-NEXT:          "tokLen": 1
2229 // CHECK-NEXT:         },
2230 // CHECK-NEXT:         "end": {
2231 // CHECK-NEXT:          "offset": 503,
2232 // CHECK-NEXT:          "col": 3,
2233 // CHECK-NEXT:          "tokLen": 1
2234 // CHECK-NEXT:         }
2235 // CHECK-NEXT:        },
2236 // CHECK-NEXT:        "type": {
2237 // CHECK-NEXT:         "qualType": "int"
2238 // CHECK-NEXT:        },
2239 // CHECK-NEXT:        "valueCategory": "rvalue",
2240 // CHECK-NEXT:        "castKind": "LValueToRValue",
2241 // CHECK-NEXT:        "inner": [
2242 // CHECK-NEXT:         {
2243 // CHECK-NEXT:          "id": "0x{{.*}}",
2244 // CHECK-NEXT:          "kind": "DeclRefExpr",
2245 // CHECK-NEXT:          "range": {
2246 // CHECK-NEXT:           "begin": {
2247 // CHECK-NEXT:            "offset": 503,
2248 // CHECK-NEXT:            "col": 3,
2249 // CHECK-NEXT:            "tokLen": 1
2250 // CHECK-NEXT:           },
2251 // CHECK-NEXT:           "end": {
2252 // CHECK-NEXT:            "offset": 503,
2253 // CHECK-NEXT:            "col": 3,
2254 // CHECK-NEXT:            "tokLen": 1
2255 // CHECK-NEXT:           }
2256 // CHECK-NEXT:          },
2257 // CHECK-NEXT:          "type": {
2258 // CHECK-NEXT:           "qualType": "int"
2259 // CHECK-NEXT:          },
2260 // CHECK-NEXT:          "valueCategory": "lvalue",
2261 // CHECK-NEXT:          "referencedDecl": {
2262 // CHECK-NEXT:           "id": "0x{{.*}}",
2263 // CHECK-NEXT:           "kind": "ParmVarDecl",
2264 // CHECK-NEXT:           "name": "a",
2265 // CHECK-NEXT:           "type": {
2266 // CHECK-NEXT:            "qualType": "int"
2267 // CHECK-NEXT:           }
2268 // CHECK-NEXT:          }
2269 // CHECK-NEXT:         }
2270 // CHECK-NEXT:        ]
2271 // CHECK-NEXT:       },
2272 // CHECK-NEXT:       {
2273 // CHECK-NEXT:        "id": "0x{{.*}}",
2274 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2275 // CHECK-NEXT:        "range": {
2276 // CHECK-NEXT:         "begin": {
2277 // CHECK-NEXT:          "offset": 508,
2278 // CHECK-NEXT:          "col": 8,
2279 // CHECK-NEXT:          "tokLen": 1
2280 // CHECK-NEXT:         },
2281 // CHECK-NEXT:         "end": {
2282 // CHECK-NEXT:          "offset": 508,
2283 // CHECK-NEXT:          "col": 8,
2284 // CHECK-NEXT:          "tokLen": 1
2285 // CHECK-NEXT:         }
2286 // CHECK-NEXT:        },
2287 // CHECK-NEXT:        "type": {
2288 // CHECK-NEXT:         "qualType": "int"
2289 // CHECK-NEXT:        },
2290 // CHECK-NEXT:        "valueCategory": "rvalue",
2291 // CHECK-NEXT:        "castKind": "LValueToRValue",
2292 // CHECK-NEXT:        "inner": [
2293 // CHECK-NEXT:         {
2294 // CHECK-NEXT:          "id": "0x{{.*}}",
2295 // CHECK-NEXT:          "kind": "DeclRefExpr",
2296 // CHECK-NEXT:          "range": {
2297 // CHECK-NEXT:           "begin": {
2298 // CHECK-NEXT:            "offset": 508,
2299 // CHECK-NEXT:            "col": 8,
2300 // CHECK-NEXT:            "tokLen": 1
2301 // CHECK-NEXT:           },
2302 // CHECK-NEXT:           "end": {
2303 // CHECK-NEXT:            "offset": 508,
2304 // CHECK-NEXT:            "col": 8,
2305 // CHECK-NEXT:            "tokLen": 1
2306 // CHECK-NEXT:           }
2307 // CHECK-NEXT:          },
2308 // CHECK-NEXT:          "type": {
2309 // CHECK-NEXT:           "qualType": "int"
2310 // CHECK-NEXT:          },
2311 // CHECK-NEXT:          "valueCategory": "lvalue",
2312 // CHECK-NEXT:          "referencedDecl": {
2313 // CHECK-NEXT:           "id": "0x{{.*}}",
2314 // CHECK-NEXT:           "kind": "ParmVarDecl",
2315 // CHECK-NEXT:           "name": "b",
2316 // CHECK-NEXT:           "type": {
2317 // CHECK-NEXT:            "qualType": "int"
2318 // CHECK-NEXT:           }
2319 // CHECK-NEXT:          }
2320 // CHECK-NEXT:         }
2321 // CHECK-NEXT:        ]
2322 // CHECK-NEXT:       }
2323 // CHECK-NEXT:      ]
2324 // CHECK-NEXT:     },
2325 // CHECK-NEXT:     {
2326 // CHECK-NEXT:      "id": "0x{{.*}}",
2327 // CHECK-NEXT:      "kind": "BinaryOperator",
2328 // CHECK-NEXT:      "range": {
2329 // CHECK-NEXT:       "begin": {
2330 // CHECK-NEXT:        "offset": 514,
2331 // CHECK-NEXT:        "line": 35,
2332 // CHECK-NEXT:        "col": 3,
2333 // CHECK-NEXT:        "tokLen": 1
2334 // CHECK-NEXT:       },
2335 // CHECK-NEXT:       "end": {
2336 // CHECK-NEXT:        "offset": 519,
2337 // CHECK-NEXT:        "col": 8,
2338 // CHECK-NEXT:        "tokLen": 1
2339 // CHECK-NEXT:       }
2340 // CHECK-NEXT:      },
2341 // CHECK-NEXT:      "type": {
2342 // CHECK-NEXT:       "qualType": "int"
2343 // CHECK-NEXT:      },
2344 // CHECK-NEXT:      "valueCategory": "rvalue",
2345 // CHECK-NEXT:      "opcode": ">=",
2346 // CHECK-NEXT:      "inner": [
2347 // CHECK-NEXT:       {
2348 // CHECK-NEXT:        "id": "0x{{.*}}",
2349 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2350 // CHECK-NEXT:        "range": {
2351 // CHECK-NEXT:         "begin": {
2352 // CHECK-NEXT:          "offset": 514,
2353 // CHECK-NEXT:          "col": 3,
2354 // CHECK-NEXT:          "tokLen": 1
2355 // CHECK-NEXT:         },
2356 // CHECK-NEXT:         "end": {
2357 // CHECK-NEXT:          "offset": 514,
2358 // CHECK-NEXT:          "col": 3,
2359 // CHECK-NEXT:          "tokLen": 1
2360 // CHECK-NEXT:         }
2361 // CHECK-NEXT:        },
2362 // CHECK-NEXT:        "type": {
2363 // CHECK-NEXT:         "qualType": "int"
2364 // CHECK-NEXT:        },
2365 // CHECK-NEXT:        "valueCategory": "rvalue",
2366 // CHECK-NEXT:        "castKind": "LValueToRValue",
2367 // CHECK-NEXT:        "inner": [
2368 // CHECK-NEXT:         {
2369 // CHECK-NEXT:          "id": "0x{{.*}}",
2370 // CHECK-NEXT:          "kind": "DeclRefExpr",
2371 // CHECK-NEXT:          "range": {
2372 // CHECK-NEXT:           "begin": {
2373 // CHECK-NEXT:            "offset": 514,
2374 // CHECK-NEXT:            "col": 3,
2375 // CHECK-NEXT:            "tokLen": 1
2376 // CHECK-NEXT:           },
2377 // CHECK-NEXT:           "end": {
2378 // CHECK-NEXT:            "offset": 514,
2379 // CHECK-NEXT:            "col": 3,
2380 // CHECK-NEXT:            "tokLen": 1
2381 // CHECK-NEXT:           }
2382 // CHECK-NEXT:          },
2383 // CHECK-NEXT:          "type": {
2384 // CHECK-NEXT:           "qualType": "int"
2385 // CHECK-NEXT:          },
2386 // CHECK-NEXT:          "valueCategory": "lvalue",
2387 // CHECK-NEXT:          "referencedDecl": {
2388 // CHECK-NEXT:           "id": "0x{{.*}}",
2389 // CHECK-NEXT:           "kind": "ParmVarDecl",
2390 // CHECK-NEXT:           "name": "a",
2391 // CHECK-NEXT:           "type": {
2392 // CHECK-NEXT:            "qualType": "int"
2393 // CHECK-NEXT:           }
2394 // CHECK-NEXT:          }
2395 // CHECK-NEXT:         }
2396 // CHECK-NEXT:        ]
2397 // CHECK-NEXT:       },
2398 // CHECK-NEXT:       {
2399 // CHECK-NEXT:        "id": "0x{{.*}}",
2400 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2401 // CHECK-NEXT:        "range": {
2402 // CHECK-NEXT:         "begin": {
2403 // CHECK-NEXT:          "offset": 519,
2404 // CHECK-NEXT:          "col": 8,
2405 // CHECK-NEXT:          "tokLen": 1
2406 // CHECK-NEXT:         },
2407 // CHECK-NEXT:         "end": {
2408 // CHECK-NEXT:          "offset": 519,
2409 // CHECK-NEXT:          "col": 8,
2410 // CHECK-NEXT:          "tokLen": 1
2411 // CHECK-NEXT:         }
2412 // CHECK-NEXT:        },
2413 // CHECK-NEXT:        "type": {
2414 // CHECK-NEXT:         "qualType": "int"
2415 // CHECK-NEXT:        },
2416 // CHECK-NEXT:        "valueCategory": "rvalue",
2417 // CHECK-NEXT:        "castKind": "LValueToRValue",
2418 // CHECK-NEXT:        "inner": [
2419 // CHECK-NEXT:         {
2420 // CHECK-NEXT:          "id": "0x{{.*}}",
2421 // CHECK-NEXT:          "kind": "DeclRefExpr",
2422 // CHECK-NEXT:          "range": {
2423 // CHECK-NEXT:           "begin": {
2424 // CHECK-NEXT:            "offset": 519,
2425 // CHECK-NEXT:            "col": 8,
2426 // CHECK-NEXT:            "tokLen": 1
2427 // CHECK-NEXT:           },
2428 // CHECK-NEXT:           "end": {
2429 // CHECK-NEXT:            "offset": 519,
2430 // CHECK-NEXT:            "col": 8,
2431 // CHECK-NEXT:            "tokLen": 1
2432 // CHECK-NEXT:           }
2433 // CHECK-NEXT:          },
2434 // CHECK-NEXT:          "type": {
2435 // CHECK-NEXT:           "qualType": "int"
2436 // CHECK-NEXT:          },
2437 // CHECK-NEXT:          "valueCategory": "lvalue",
2438 // CHECK-NEXT:          "referencedDecl": {
2439 // CHECK-NEXT:           "id": "0x{{.*}}",
2440 // CHECK-NEXT:           "kind": "ParmVarDecl",
2441 // CHECK-NEXT:           "name": "b",
2442 // CHECK-NEXT:           "type": {
2443 // CHECK-NEXT:            "qualType": "int"
2444 // CHECK-NEXT:           }
2445 // CHECK-NEXT:          }
2446 // CHECK-NEXT:         }
2447 // CHECK-NEXT:        ]
2448 // CHECK-NEXT:       }
2449 // CHECK-NEXT:      ]
2450 // CHECK-NEXT:     },
2451 // CHECK-NEXT:     {
2452 // CHECK-NEXT:      "id": "0x{{.*}}",
2453 // CHECK-NEXT:      "kind": "BinaryOperator",
2454 // CHECK-NEXT:      "range": {
2455 // CHECK-NEXT:       "begin": {
2456 // CHECK-NEXT:        "offset": 556,
2457 // CHECK-NEXT:        "line": 38,
2458 // CHECK-NEXT:        "col": 3,
2459 // CHECK-NEXT:        "tokLen": 1
2460 // CHECK-NEXT:       },
2461 // CHECK-NEXT:       "end": {
2462 // CHECK-NEXT:        "offset": 561,
2463 // CHECK-NEXT:        "col": 8,
2464 // CHECK-NEXT:        "tokLen": 1
2465 // CHECK-NEXT:       }
2466 // CHECK-NEXT:      },
2467 // CHECK-NEXT:      "type": {
2468 // CHECK-NEXT:       "qualType": "int"
2469 // CHECK-NEXT:      },
2470 // CHECK-NEXT:      "valueCategory": "rvalue",
2471 // CHECK-NEXT:      "opcode": "<<",
2472 // CHECK-NEXT:      "inner": [
2473 // CHECK-NEXT:       {
2474 // CHECK-NEXT:        "id": "0x{{.*}}",
2475 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2476 // CHECK-NEXT:        "range": {
2477 // CHECK-NEXT:         "begin": {
2478 // CHECK-NEXT:          "offset": 556,
2479 // CHECK-NEXT:          "col": 3,
2480 // CHECK-NEXT:          "tokLen": 1
2481 // CHECK-NEXT:         },
2482 // CHECK-NEXT:         "end": {
2483 // CHECK-NEXT:          "offset": 556,
2484 // CHECK-NEXT:          "col": 3,
2485 // CHECK-NEXT:          "tokLen": 1
2486 // CHECK-NEXT:         }
2487 // CHECK-NEXT:        },
2488 // CHECK-NEXT:        "type": {
2489 // CHECK-NEXT:         "qualType": "int"
2490 // CHECK-NEXT:        },
2491 // CHECK-NEXT:        "valueCategory": "rvalue",
2492 // CHECK-NEXT:        "castKind": "LValueToRValue",
2493 // CHECK-NEXT:        "inner": [
2494 // CHECK-NEXT:         {
2495 // CHECK-NEXT:          "id": "0x{{.*}}",
2496 // CHECK-NEXT:          "kind": "DeclRefExpr",
2497 // CHECK-NEXT:          "range": {
2498 // CHECK-NEXT:           "begin": {
2499 // CHECK-NEXT:            "offset": 556,
2500 // CHECK-NEXT:            "col": 3,
2501 // CHECK-NEXT:            "tokLen": 1
2502 // CHECK-NEXT:           },
2503 // CHECK-NEXT:           "end": {
2504 // CHECK-NEXT:            "offset": 556,
2505 // CHECK-NEXT:            "col": 3,
2506 // CHECK-NEXT:            "tokLen": 1
2507 // CHECK-NEXT:           }
2508 // CHECK-NEXT:          },
2509 // CHECK-NEXT:          "type": {
2510 // CHECK-NEXT:           "qualType": "int"
2511 // CHECK-NEXT:          },
2512 // CHECK-NEXT:          "valueCategory": "lvalue",
2513 // CHECK-NEXT:          "referencedDecl": {
2514 // CHECK-NEXT:           "id": "0x{{.*}}",
2515 // CHECK-NEXT:           "kind": "ParmVarDecl",
2516 // CHECK-NEXT:           "name": "a",
2517 // CHECK-NEXT:           "type": {
2518 // CHECK-NEXT:            "qualType": "int"
2519 // CHECK-NEXT:           }
2520 // CHECK-NEXT:          }
2521 // CHECK-NEXT:         }
2522 // CHECK-NEXT:        ]
2523 // CHECK-NEXT:       },
2524 // CHECK-NEXT:       {
2525 // CHECK-NEXT:        "id": "0x{{.*}}",
2526 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2527 // CHECK-NEXT:        "range": {
2528 // CHECK-NEXT:         "begin": {
2529 // CHECK-NEXT:          "offset": 561,
2530 // CHECK-NEXT:          "col": 8,
2531 // CHECK-NEXT:          "tokLen": 1
2532 // CHECK-NEXT:         },
2533 // CHECK-NEXT:         "end": {
2534 // CHECK-NEXT:          "offset": 561,
2535 // CHECK-NEXT:          "col": 8,
2536 // CHECK-NEXT:          "tokLen": 1
2537 // CHECK-NEXT:         }
2538 // CHECK-NEXT:        },
2539 // CHECK-NEXT:        "type": {
2540 // CHECK-NEXT:         "qualType": "int"
2541 // CHECK-NEXT:        },
2542 // CHECK-NEXT:        "valueCategory": "rvalue",
2543 // CHECK-NEXT:        "castKind": "LValueToRValue",
2544 // CHECK-NEXT:        "inner": [
2545 // CHECK-NEXT:         {
2546 // CHECK-NEXT:          "id": "0x{{.*}}",
2547 // CHECK-NEXT:          "kind": "DeclRefExpr",
2548 // CHECK-NEXT:          "range": {
2549 // CHECK-NEXT:           "begin": {
2550 // CHECK-NEXT:            "offset": 561,
2551 // CHECK-NEXT:            "col": 8,
2552 // CHECK-NEXT:            "tokLen": 1
2553 // CHECK-NEXT:           },
2554 // CHECK-NEXT:           "end": {
2555 // CHECK-NEXT:            "offset": 561,
2556 // CHECK-NEXT:            "col": 8,
2557 // CHECK-NEXT:            "tokLen": 1
2558 // CHECK-NEXT:           }
2559 // CHECK-NEXT:          },
2560 // CHECK-NEXT:          "type": {
2561 // CHECK-NEXT:           "qualType": "int"
2562 // CHECK-NEXT:          },
2563 // CHECK-NEXT:          "valueCategory": "lvalue",
2564 // CHECK-NEXT:          "referencedDecl": {
2565 // CHECK-NEXT:           "id": "0x{{.*}}",
2566 // CHECK-NEXT:           "kind": "ParmVarDecl",
2567 // CHECK-NEXT:           "name": "b",
2568 // CHECK-NEXT:           "type": {
2569 // CHECK-NEXT:            "qualType": "int"
2570 // CHECK-NEXT:           }
2571 // CHECK-NEXT:          }
2572 // CHECK-NEXT:         }
2573 // CHECK-NEXT:        ]
2574 // CHECK-NEXT:       }
2575 // CHECK-NEXT:      ]
2576 // CHECK-NEXT:     },
2577 // CHECK-NEXT:     {
2578 // CHECK-NEXT:      "id": "0x{{.*}}",
2579 // CHECK-NEXT:      "kind": "BinaryOperator",
2580 // CHECK-NEXT:      "range": {
2581 // CHECK-NEXT:       "begin": {
2582 // CHECK-NEXT:        "offset": 567,
2583 // CHECK-NEXT:        "line": 39,
2584 // CHECK-NEXT:        "col": 3,
2585 // CHECK-NEXT:        "tokLen": 1
2586 // CHECK-NEXT:       },
2587 // CHECK-NEXT:       "end": {
2588 // CHECK-NEXT:        "offset": 572,
2589 // CHECK-NEXT:        "col": 8,
2590 // CHECK-NEXT:        "tokLen": 1
2591 // CHECK-NEXT:       }
2592 // CHECK-NEXT:      },
2593 // CHECK-NEXT:      "type": {
2594 // CHECK-NEXT:       "qualType": "int"
2595 // CHECK-NEXT:      },
2596 // CHECK-NEXT:      "valueCategory": "rvalue",
2597 // CHECK-NEXT:      "opcode": ">>",
2598 // CHECK-NEXT:      "inner": [
2599 // CHECK-NEXT:       {
2600 // CHECK-NEXT:        "id": "0x{{.*}}",
2601 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2602 // CHECK-NEXT:        "range": {
2603 // CHECK-NEXT:         "begin": {
2604 // CHECK-NEXT:          "offset": 567,
2605 // CHECK-NEXT:          "col": 3,
2606 // CHECK-NEXT:          "tokLen": 1
2607 // CHECK-NEXT:         },
2608 // CHECK-NEXT:         "end": {
2609 // CHECK-NEXT:          "offset": 567,
2610 // CHECK-NEXT:          "col": 3,
2611 // CHECK-NEXT:          "tokLen": 1
2612 // CHECK-NEXT:         }
2613 // CHECK-NEXT:        },
2614 // CHECK-NEXT:        "type": {
2615 // CHECK-NEXT:         "qualType": "int"
2616 // CHECK-NEXT:        },
2617 // CHECK-NEXT:        "valueCategory": "rvalue",
2618 // CHECK-NEXT:        "castKind": "LValueToRValue",
2619 // CHECK-NEXT:        "inner": [
2620 // CHECK-NEXT:         {
2621 // CHECK-NEXT:          "id": "0x{{.*}}",
2622 // CHECK-NEXT:          "kind": "DeclRefExpr",
2623 // CHECK-NEXT:          "range": {
2624 // CHECK-NEXT:           "begin": {
2625 // CHECK-NEXT:            "offset": 567,
2626 // CHECK-NEXT:            "col": 3,
2627 // CHECK-NEXT:            "tokLen": 1
2628 // CHECK-NEXT:           },
2629 // CHECK-NEXT:           "end": {
2630 // CHECK-NEXT:            "offset": 567,
2631 // CHECK-NEXT:            "col": 3,
2632 // CHECK-NEXT:            "tokLen": 1
2633 // CHECK-NEXT:           }
2634 // CHECK-NEXT:          },
2635 // CHECK-NEXT:          "type": {
2636 // CHECK-NEXT:           "qualType": "int"
2637 // CHECK-NEXT:          },
2638 // CHECK-NEXT:          "valueCategory": "lvalue",
2639 // CHECK-NEXT:          "referencedDecl": {
2640 // CHECK-NEXT:           "id": "0x{{.*}}",
2641 // CHECK-NEXT:           "kind": "ParmVarDecl",
2642 // CHECK-NEXT:           "name": "a",
2643 // CHECK-NEXT:           "type": {
2644 // CHECK-NEXT:            "qualType": "int"
2645 // CHECK-NEXT:           }
2646 // CHECK-NEXT:          }
2647 // CHECK-NEXT:         }
2648 // CHECK-NEXT:        ]
2649 // CHECK-NEXT:       },
2650 // CHECK-NEXT:       {
2651 // CHECK-NEXT:        "id": "0x{{.*}}",
2652 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2653 // CHECK-NEXT:        "range": {
2654 // CHECK-NEXT:         "begin": {
2655 // CHECK-NEXT:          "offset": 572,
2656 // CHECK-NEXT:          "col": 8,
2657 // CHECK-NEXT:          "tokLen": 1
2658 // CHECK-NEXT:         },
2659 // CHECK-NEXT:         "end": {
2660 // CHECK-NEXT:          "offset": 572,
2661 // CHECK-NEXT:          "col": 8,
2662 // CHECK-NEXT:          "tokLen": 1
2663 // CHECK-NEXT:         }
2664 // CHECK-NEXT:        },
2665 // CHECK-NEXT:        "type": {
2666 // CHECK-NEXT:         "qualType": "int"
2667 // CHECK-NEXT:        },
2668 // CHECK-NEXT:        "valueCategory": "rvalue",
2669 // CHECK-NEXT:        "castKind": "LValueToRValue",
2670 // CHECK-NEXT:        "inner": [
2671 // CHECK-NEXT:         {
2672 // CHECK-NEXT:          "id": "0x{{.*}}",
2673 // CHECK-NEXT:          "kind": "DeclRefExpr",
2674 // CHECK-NEXT:          "range": {
2675 // CHECK-NEXT:           "begin": {
2676 // CHECK-NEXT:            "offset": 572,
2677 // CHECK-NEXT:            "col": 8,
2678 // CHECK-NEXT:            "tokLen": 1
2679 // CHECK-NEXT:           },
2680 // CHECK-NEXT:           "end": {
2681 // CHECK-NEXT:            "offset": 572,
2682 // CHECK-NEXT:            "col": 8,
2683 // CHECK-NEXT:            "tokLen": 1
2684 // CHECK-NEXT:           }
2685 // CHECK-NEXT:          },
2686 // CHECK-NEXT:          "type": {
2687 // CHECK-NEXT:           "qualType": "int"
2688 // CHECK-NEXT:          },
2689 // CHECK-NEXT:          "valueCategory": "lvalue",
2690 // CHECK-NEXT:          "referencedDecl": {
2691 // CHECK-NEXT:           "id": "0x{{.*}}",
2692 // CHECK-NEXT:           "kind": "ParmVarDecl",
2693 // CHECK-NEXT:           "name": "b",
2694 // CHECK-NEXT:           "type": {
2695 // CHECK-NEXT:            "qualType": "int"
2696 // CHECK-NEXT:           }
2697 // CHECK-NEXT:          }
2698 // CHECK-NEXT:         }
2699 // CHECK-NEXT:        ]
2700 // CHECK-NEXT:       }
2701 // CHECK-NEXT:      ]
2702 // CHECK-NEXT:     },
2703 // CHECK-NEXT:     {
2704 // CHECK-NEXT:      "id": "0x{{.*}}",
2705 // CHECK-NEXT:      "kind": "BinaryOperator",
2706 // CHECK-NEXT:      "range": {
2707 // CHECK-NEXT:       "begin": {
2708 // CHECK-NEXT:        "offset": 605,
2709 // CHECK-NEXT:        "line": 42,
2710 // CHECK-NEXT:        "col": 3,
2711 // CHECK-NEXT:        "tokLen": 1
2712 // CHECK-NEXT:       },
2713 // CHECK-NEXT:       "end": {
2714 // CHECK-NEXT:        "offset": 609,
2715 // CHECK-NEXT:        "col": 7,
2716 // CHECK-NEXT:        "tokLen": 1
2717 // CHECK-NEXT:       }
2718 // CHECK-NEXT:      },
2719 // CHECK-NEXT:      "type": {
2720 // CHECK-NEXT:       "qualType": "int"
2721 // CHECK-NEXT:      },
2722 // CHECK-NEXT:      "valueCategory": "rvalue",
2723 // CHECK-NEXT:      "opcode": "+",
2724 // CHECK-NEXT:      "inner": [
2725 // CHECK-NEXT:       {
2726 // CHECK-NEXT:        "id": "0x{{.*}}",
2727 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2728 // CHECK-NEXT:        "range": {
2729 // CHECK-NEXT:         "begin": {
2730 // CHECK-NEXT:          "offset": 605,
2731 // CHECK-NEXT:          "col": 3,
2732 // CHECK-NEXT:          "tokLen": 1
2733 // CHECK-NEXT:         },
2734 // CHECK-NEXT:         "end": {
2735 // CHECK-NEXT:          "offset": 605,
2736 // CHECK-NEXT:          "col": 3,
2737 // CHECK-NEXT:          "tokLen": 1
2738 // CHECK-NEXT:         }
2739 // CHECK-NEXT:        },
2740 // CHECK-NEXT:        "type": {
2741 // CHECK-NEXT:         "qualType": "int"
2742 // CHECK-NEXT:        },
2743 // CHECK-NEXT:        "valueCategory": "rvalue",
2744 // CHECK-NEXT:        "castKind": "LValueToRValue",
2745 // CHECK-NEXT:        "inner": [
2746 // CHECK-NEXT:         {
2747 // CHECK-NEXT:          "id": "0x{{.*}}",
2748 // CHECK-NEXT:          "kind": "DeclRefExpr",
2749 // CHECK-NEXT:          "range": {
2750 // CHECK-NEXT:           "begin": {
2751 // CHECK-NEXT:            "offset": 605,
2752 // CHECK-NEXT:            "col": 3,
2753 // CHECK-NEXT:            "tokLen": 1
2754 // CHECK-NEXT:           },
2755 // CHECK-NEXT:           "end": {
2756 // CHECK-NEXT:            "offset": 605,
2757 // CHECK-NEXT:            "col": 3,
2758 // CHECK-NEXT:            "tokLen": 1
2759 // CHECK-NEXT:           }
2760 // CHECK-NEXT:          },
2761 // CHECK-NEXT:          "type": {
2762 // CHECK-NEXT:           "qualType": "int"
2763 // CHECK-NEXT:          },
2764 // CHECK-NEXT:          "valueCategory": "lvalue",
2765 // CHECK-NEXT:          "referencedDecl": {
2766 // CHECK-NEXT:           "id": "0x{{.*}}",
2767 // CHECK-NEXT:           "kind": "ParmVarDecl",
2768 // CHECK-NEXT:           "name": "a",
2769 // CHECK-NEXT:           "type": {
2770 // CHECK-NEXT:            "qualType": "int"
2771 // CHECK-NEXT:           }
2772 // CHECK-NEXT:          }
2773 // CHECK-NEXT:         }
2774 // CHECK-NEXT:        ]
2775 // CHECK-NEXT:       },
2776 // CHECK-NEXT:       {
2777 // CHECK-NEXT:        "id": "0x{{.*}}",
2778 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2779 // CHECK-NEXT:        "range": {
2780 // CHECK-NEXT:         "begin": {
2781 // CHECK-NEXT:          "offset": 609,
2782 // CHECK-NEXT:          "col": 7,
2783 // CHECK-NEXT:          "tokLen": 1
2784 // CHECK-NEXT:         },
2785 // CHECK-NEXT:         "end": {
2786 // CHECK-NEXT:          "offset": 609,
2787 // CHECK-NEXT:          "col": 7,
2788 // CHECK-NEXT:          "tokLen": 1
2789 // CHECK-NEXT:         }
2790 // CHECK-NEXT:        },
2791 // CHECK-NEXT:        "type": {
2792 // CHECK-NEXT:         "qualType": "int"
2793 // CHECK-NEXT:        },
2794 // CHECK-NEXT:        "valueCategory": "rvalue",
2795 // CHECK-NEXT:        "castKind": "LValueToRValue",
2796 // CHECK-NEXT:        "inner": [
2797 // CHECK-NEXT:         {
2798 // CHECK-NEXT:          "id": "0x{{.*}}",
2799 // CHECK-NEXT:          "kind": "DeclRefExpr",
2800 // CHECK-NEXT:          "range": {
2801 // CHECK-NEXT:           "begin": {
2802 // CHECK-NEXT:            "offset": 609,
2803 // CHECK-NEXT:            "col": 7,
2804 // CHECK-NEXT:            "tokLen": 1
2805 // CHECK-NEXT:           },
2806 // CHECK-NEXT:           "end": {
2807 // CHECK-NEXT:            "offset": 609,
2808 // CHECK-NEXT:            "col": 7,
2809 // CHECK-NEXT:            "tokLen": 1
2810 // CHECK-NEXT:           }
2811 // CHECK-NEXT:          },
2812 // CHECK-NEXT:          "type": {
2813 // CHECK-NEXT:           "qualType": "int"
2814 // CHECK-NEXT:          },
2815 // CHECK-NEXT:          "valueCategory": "lvalue",
2816 // CHECK-NEXT:          "referencedDecl": {
2817 // CHECK-NEXT:           "id": "0x{{.*}}",
2818 // CHECK-NEXT:           "kind": "ParmVarDecl",
2819 // CHECK-NEXT:           "name": "b",
2820 // CHECK-NEXT:           "type": {
2821 // CHECK-NEXT:            "qualType": "int"
2822 // CHECK-NEXT:           }
2823 // CHECK-NEXT:          }
2824 // CHECK-NEXT:         }
2825 // CHECK-NEXT:        ]
2826 // CHECK-NEXT:       }
2827 // CHECK-NEXT:      ]
2828 // CHECK-NEXT:     },
2829 // CHECK-NEXT:     {
2830 // CHECK-NEXT:      "id": "0x{{.*}}",
2831 // CHECK-NEXT:      "kind": "BinaryOperator",
2832 // CHECK-NEXT:      "range": {
2833 // CHECK-NEXT:       "begin": {
2834 // CHECK-NEXT:        "offset": 615,
2835 // CHECK-NEXT:        "line": 43,
2836 // CHECK-NEXT:        "col": 3,
2837 // CHECK-NEXT:        "tokLen": 1
2838 // CHECK-NEXT:       },
2839 // CHECK-NEXT:       "end": {
2840 // CHECK-NEXT:        "offset": 619,
2841 // CHECK-NEXT:        "col": 7,
2842 // CHECK-NEXT:        "tokLen": 1
2843 // CHECK-NEXT:       }
2844 // CHECK-NEXT:      },
2845 // CHECK-NEXT:      "type": {
2846 // CHECK-NEXT:       "qualType": "int"
2847 // CHECK-NEXT:      },
2848 // CHECK-NEXT:      "valueCategory": "rvalue",
2849 // CHECK-NEXT:      "opcode": "-",
2850 // CHECK-NEXT:      "inner": [
2851 // CHECK-NEXT:       {
2852 // CHECK-NEXT:        "id": "0x{{.*}}",
2853 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2854 // CHECK-NEXT:        "range": {
2855 // CHECK-NEXT:         "begin": {
2856 // CHECK-NEXT:          "offset": 615,
2857 // CHECK-NEXT:          "col": 3,
2858 // CHECK-NEXT:          "tokLen": 1
2859 // CHECK-NEXT:         },
2860 // CHECK-NEXT:         "end": {
2861 // CHECK-NEXT:          "offset": 615,
2862 // CHECK-NEXT:          "col": 3,
2863 // CHECK-NEXT:          "tokLen": 1
2864 // CHECK-NEXT:         }
2865 // CHECK-NEXT:        },
2866 // CHECK-NEXT:        "type": {
2867 // CHECK-NEXT:         "qualType": "int"
2868 // CHECK-NEXT:        },
2869 // CHECK-NEXT:        "valueCategory": "rvalue",
2870 // CHECK-NEXT:        "castKind": "LValueToRValue",
2871 // CHECK-NEXT:        "inner": [
2872 // CHECK-NEXT:         {
2873 // CHECK-NEXT:          "id": "0x{{.*}}",
2874 // CHECK-NEXT:          "kind": "DeclRefExpr",
2875 // CHECK-NEXT:          "range": {
2876 // CHECK-NEXT:           "begin": {
2877 // CHECK-NEXT:            "offset": 615,
2878 // CHECK-NEXT:            "col": 3,
2879 // CHECK-NEXT:            "tokLen": 1
2880 // CHECK-NEXT:           },
2881 // CHECK-NEXT:           "end": {
2882 // CHECK-NEXT:            "offset": 615,
2883 // CHECK-NEXT:            "col": 3,
2884 // CHECK-NEXT:            "tokLen": 1
2885 // CHECK-NEXT:           }
2886 // CHECK-NEXT:          },
2887 // CHECK-NEXT:          "type": {
2888 // CHECK-NEXT:           "qualType": "int"
2889 // CHECK-NEXT:          },
2890 // CHECK-NEXT:          "valueCategory": "lvalue",
2891 // CHECK-NEXT:          "referencedDecl": {
2892 // CHECK-NEXT:           "id": "0x{{.*}}",
2893 // CHECK-NEXT:           "kind": "ParmVarDecl",
2894 // CHECK-NEXT:           "name": "a",
2895 // CHECK-NEXT:           "type": {
2896 // CHECK-NEXT:            "qualType": "int"
2897 // CHECK-NEXT:           }
2898 // CHECK-NEXT:          }
2899 // CHECK-NEXT:         }
2900 // CHECK-NEXT:        ]
2901 // CHECK-NEXT:       },
2902 // CHECK-NEXT:       {
2903 // CHECK-NEXT:        "id": "0x{{.*}}",
2904 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2905 // CHECK-NEXT:        "range": {
2906 // CHECK-NEXT:         "begin": {
2907 // CHECK-NEXT:          "offset": 619,
2908 // CHECK-NEXT:          "col": 7,
2909 // CHECK-NEXT:          "tokLen": 1
2910 // CHECK-NEXT:         },
2911 // CHECK-NEXT:         "end": {
2912 // CHECK-NEXT:          "offset": 619,
2913 // CHECK-NEXT:          "col": 7,
2914 // CHECK-NEXT:          "tokLen": 1
2915 // CHECK-NEXT:         }
2916 // CHECK-NEXT:        },
2917 // CHECK-NEXT:        "type": {
2918 // CHECK-NEXT:         "qualType": "int"
2919 // CHECK-NEXT:        },
2920 // CHECK-NEXT:        "valueCategory": "rvalue",
2921 // CHECK-NEXT:        "castKind": "LValueToRValue",
2922 // CHECK-NEXT:        "inner": [
2923 // CHECK-NEXT:         {
2924 // CHECK-NEXT:          "id": "0x{{.*}}",
2925 // CHECK-NEXT:          "kind": "DeclRefExpr",
2926 // CHECK-NEXT:          "range": {
2927 // CHECK-NEXT:           "begin": {
2928 // CHECK-NEXT:            "offset": 619,
2929 // CHECK-NEXT:            "col": 7,
2930 // CHECK-NEXT:            "tokLen": 1
2931 // CHECK-NEXT:           },
2932 // CHECK-NEXT:           "end": {
2933 // CHECK-NEXT:            "offset": 619,
2934 // CHECK-NEXT:            "col": 7,
2935 // CHECK-NEXT:            "tokLen": 1
2936 // CHECK-NEXT:           }
2937 // CHECK-NEXT:          },
2938 // CHECK-NEXT:          "type": {
2939 // CHECK-NEXT:           "qualType": "int"
2940 // CHECK-NEXT:          },
2941 // CHECK-NEXT:          "valueCategory": "lvalue",
2942 // CHECK-NEXT:          "referencedDecl": {
2943 // CHECK-NEXT:           "id": "0x{{.*}}",
2944 // CHECK-NEXT:           "kind": "ParmVarDecl",
2945 // CHECK-NEXT:           "name": "b",
2946 // CHECK-NEXT:           "type": {
2947 // CHECK-NEXT:            "qualType": "int"
2948 // CHECK-NEXT:           }
2949 // CHECK-NEXT:          }
2950 // CHECK-NEXT:         }
2951 // CHECK-NEXT:        ]
2952 // CHECK-NEXT:       }
2953 // CHECK-NEXT:      ]
2954 // CHECK-NEXT:     },
2955 // CHECK-NEXT:     {
2956 // CHECK-NEXT:      "id": "0x{{.*}}",
2957 // CHECK-NEXT:      "kind": "BinaryOperator",
2958 // CHECK-NEXT:      "range": {
2959 // CHECK-NEXT:       "begin": {
2960 // CHECK-NEXT:        "offset": 658,
2961 // CHECK-NEXT:        "line": 46,
2962 // CHECK-NEXT:        "col": 3,
2963 // CHECK-NEXT:        "tokLen": 1
2964 // CHECK-NEXT:       },
2965 // CHECK-NEXT:       "end": {
2966 // CHECK-NEXT:        "offset": 662,
2967 // CHECK-NEXT:        "col": 7,
2968 // CHECK-NEXT:        "tokLen": 1
2969 // CHECK-NEXT:       }
2970 // CHECK-NEXT:      },
2971 // CHECK-NEXT:      "type": {
2972 // CHECK-NEXT:       "qualType": "int"
2973 // CHECK-NEXT:      },
2974 // CHECK-NEXT:      "valueCategory": "rvalue",
2975 // CHECK-NEXT:      "opcode": "*",
2976 // CHECK-NEXT:      "inner": [
2977 // CHECK-NEXT:       {
2978 // CHECK-NEXT:        "id": "0x{{.*}}",
2979 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
2980 // CHECK-NEXT:        "range": {
2981 // CHECK-NEXT:         "begin": {
2982 // CHECK-NEXT:          "offset": 658,
2983 // CHECK-NEXT:          "col": 3,
2984 // CHECK-NEXT:          "tokLen": 1
2985 // CHECK-NEXT:         },
2986 // CHECK-NEXT:         "end": {
2987 // CHECK-NEXT:          "offset": 658,
2988 // CHECK-NEXT:          "col": 3,
2989 // CHECK-NEXT:          "tokLen": 1
2990 // CHECK-NEXT:         }
2991 // CHECK-NEXT:        },
2992 // CHECK-NEXT:        "type": {
2993 // CHECK-NEXT:         "qualType": "int"
2994 // CHECK-NEXT:        },
2995 // CHECK-NEXT:        "valueCategory": "rvalue",
2996 // CHECK-NEXT:        "castKind": "LValueToRValue",
2997 // CHECK-NEXT:        "inner": [
2998 // CHECK-NEXT:         {
2999 // CHECK-NEXT:          "id": "0x{{.*}}",
3000 // CHECK-NEXT:          "kind": "DeclRefExpr",
3001 // CHECK-NEXT:          "range": {
3002 // CHECK-NEXT:           "begin": {
3003 // CHECK-NEXT:            "offset": 658,
3004 // CHECK-NEXT:            "col": 3,
3005 // CHECK-NEXT:            "tokLen": 1
3006 // CHECK-NEXT:           },
3007 // CHECK-NEXT:           "end": {
3008 // CHECK-NEXT:            "offset": 658,
3009 // CHECK-NEXT:            "col": 3,
3010 // CHECK-NEXT:            "tokLen": 1
3011 // CHECK-NEXT:           }
3012 // CHECK-NEXT:          },
3013 // CHECK-NEXT:          "type": {
3014 // CHECK-NEXT:           "qualType": "int"
3015 // CHECK-NEXT:          },
3016 // CHECK-NEXT:          "valueCategory": "lvalue",
3017 // CHECK-NEXT:          "referencedDecl": {
3018 // CHECK-NEXT:           "id": "0x{{.*}}",
3019 // CHECK-NEXT:           "kind": "ParmVarDecl",
3020 // CHECK-NEXT:           "name": "a",
3021 // CHECK-NEXT:           "type": {
3022 // CHECK-NEXT:            "qualType": "int"
3023 // CHECK-NEXT:           }
3024 // CHECK-NEXT:          }
3025 // CHECK-NEXT:         }
3026 // CHECK-NEXT:        ]
3027 // CHECK-NEXT:       },
3028 // CHECK-NEXT:       {
3029 // CHECK-NEXT:        "id": "0x{{.*}}",
3030 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3031 // CHECK-NEXT:        "range": {
3032 // CHECK-NEXT:         "begin": {
3033 // CHECK-NEXT:          "offset": 662,
3034 // CHECK-NEXT:          "col": 7,
3035 // CHECK-NEXT:          "tokLen": 1
3036 // CHECK-NEXT:         },
3037 // CHECK-NEXT:         "end": {
3038 // CHECK-NEXT:          "offset": 662,
3039 // CHECK-NEXT:          "col": 7,
3040 // CHECK-NEXT:          "tokLen": 1
3041 // CHECK-NEXT:         }
3042 // CHECK-NEXT:        },
3043 // CHECK-NEXT:        "type": {
3044 // CHECK-NEXT:         "qualType": "int"
3045 // CHECK-NEXT:        },
3046 // CHECK-NEXT:        "valueCategory": "rvalue",
3047 // CHECK-NEXT:        "castKind": "LValueToRValue",
3048 // CHECK-NEXT:        "inner": [
3049 // CHECK-NEXT:         {
3050 // CHECK-NEXT:          "id": "0x{{.*}}",
3051 // CHECK-NEXT:          "kind": "DeclRefExpr",
3052 // CHECK-NEXT:          "range": {
3053 // CHECK-NEXT:           "begin": {
3054 // CHECK-NEXT:            "offset": 662,
3055 // CHECK-NEXT:            "col": 7,
3056 // CHECK-NEXT:            "tokLen": 1
3057 // CHECK-NEXT:           },
3058 // CHECK-NEXT:           "end": {
3059 // CHECK-NEXT:            "offset": 662,
3060 // CHECK-NEXT:            "col": 7,
3061 // CHECK-NEXT:            "tokLen": 1
3062 // CHECK-NEXT:           }
3063 // CHECK-NEXT:          },
3064 // CHECK-NEXT:          "type": {
3065 // CHECK-NEXT:           "qualType": "int"
3066 // CHECK-NEXT:          },
3067 // CHECK-NEXT:          "valueCategory": "lvalue",
3068 // CHECK-NEXT:          "referencedDecl": {
3069 // CHECK-NEXT:           "id": "0x{{.*}}",
3070 // CHECK-NEXT:           "kind": "ParmVarDecl",
3071 // CHECK-NEXT:           "name": "b",
3072 // CHECK-NEXT:           "type": {
3073 // CHECK-NEXT:            "qualType": "int"
3074 // CHECK-NEXT:           }
3075 // CHECK-NEXT:          }
3076 // CHECK-NEXT:         }
3077 // CHECK-NEXT:        ]
3078 // CHECK-NEXT:       }
3079 // CHECK-NEXT:      ]
3080 // CHECK-NEXT:     },
3081 // CHECK-NEXT:     {
3082 // CHECK-NEXT:      "id": "0x{{.*}}",
3083 // CHECK-NEXT:      "kind": "BinaryOperator",
3084 // CHECK-NEXT:      "range": {
3085 // CHECK-NEXT:       "begin": {
3086 // CHECK-NEXT:        "offset": 668,
3087 // CHECK-NEXT:        "line": 47,
3088 // CHECK-NEXT:        "col": 3,
3089 // CHECK-NEXT:        "tokLen": 1
3090 // CHECK-NEXT:       },
3091 // CHECK-NEXT:       "end": {
3092 // CHECK-NEXT:        "offset": 672,
3093 // CHECK-NEXT:        "col": 7,
3094 // CHECK-NEXT:        "tokLen": 1
3095 // CHECK-NEXT:       }
3096 // CHECK-NEXT:      },
3097 // CHECK-NEXT:      "type": {
3098 // CHECK-NEXT:       "qualType": "int"
3099 // CHECK-NEXT:      },
3100 // CHECK-NEXT:      "valueCategory": "rvalue",
3101 // CHECK-NEXT:      "opcode": "/",
3102 // CHECK-NEXT:      "inner": [
3103 // CHECK-NEXT:       {
3104 // CHECK-NEXT:        "id": "0x{{.*}}",
3105 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3106 // CHECK-NEXT:        "range": {
3107 // CHECK-NEXT:         "begin": {
3108 // CHECK-NEXT:          "offset": 668,
3109 // CHECK-NEXT:          "col": 3,
3110 // CHECK-NEXT:          "tokLen": 1
3111 // CHECK-NEXT:         },
3112 // CHECK-NEXT:         "end": {
3113 // CHECK-NEXT:          "offset": 668,
3114 // CHECK-NEXT:          "col": 3,
3115 // CHECK-NEXT:          "tokLen": 1
3116 // CHECK-NEXT:         }
3117 // CHECK-NEXT:        },
3118 // CHECK-NEXT:        "type": {
3119 // CHECK-NEXT:         "qualType": "int"
3120 // CHECK-NEXT:        },
3121 // CHECK-NEXT:        "valueCategory": "rvalue",
3122 // CHECK-NEXT:        "castKind": "LValueToRValue",
3123 // CHECK-NEXT:        "inner": [
3124 // CHECK-NEXT:         {
3125 // CHECK-NEXT:          "id": "0x{{.*}}",
3126 // CHECK-NEXT:          "kind": "DeclRefExpr",
3127 // CHECK-NEXT:          "range": {
3128 // CHECK-NEXT:           "begin": {
3129 // CHECK-NEXT:            "offset": 668,
3130 // CHECK-NEXT:            "col": 3,
3131 // CHECK-NEXT:            "tokLen": 1
3132 // CHECK-NEXT:           },
3133 // CHECK-NEXT:           "end": {
3134 // CHECK-NEXT:            "offset": 668,
3135 // CHECK-NEXT:            "col": 3,
3136 // CHECK-NEXT:            "tokLen": 1
3137 // CHECK-NEXT:           }
3138 // CHECK-NEXT:          },
3139 // CHECK-NEXT:          "type": {
3140 // CHECK-NEXT:           "qualType": "int"
3141 // CHECK-NEXT:          },
3142 // CHECK-NEXT:          "valueCategory": "lvalue",
3143 // CHECK-NEXT:          "referencedDecl": {
3144 // CHECK-NEXT:           "id": "0x{{.*}}",
3145 // CHECK-NEXT:           "kind": "ParmVarDecl",
3146 // CHECK-NEXT:           "name": "a",
3147 // CHECK-NEXT:           "type": {
3148 // CHECK-NEXT:            "qualType": "int"
3149 // CHECK-NEXT:           }
3150 // CHECK-NEXT:          }
3151 // CHECK-NEXT:         }
3152 // CHECK-NEXT:        ]
3153 // CHECK-NEXT:       },
3154 // CHECK-NEXT:       {
3155 // CHECK-NEXT:        "id": "0x{{.*}}",
3156 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3157 // CHECK-NEXT:        "range": {
3158 // CHECK-NEXT:         "begin": {
3159 // CHECK-NEXT:          "offset": 672,
3160 // CHECK-NEXT:          "col": 7,
3161 // CHECK-NEXT:          "tokLen": 1
3162 // CHECK-NEXT:         },
3163 // CHECK-NEXT:         "end": {
3164 // CHECK-NEXT:          "offset": 672,
3165 // CHECK-NEXT:          "col": 7,
3166 // CHECK-NEXT:          "tokLen": 1
3167 // CHECK-NEXT:         }
3168 // CHECK-NEXT:        },
3169 // CHECK-NEXT:        "type": {
3170 // CHECK-NEXT:         "qualType": "int"
3171 // CHECK-NEXT:        },
3172 // CHECK-NEXT:        "valueCategory": "rvalue",
3173 // CHECK-NEXT:        "castKind": "LValueToRValue",
3174 // CHECK-NEXT:        "inner": [
3175 // CHECK-NEXT:         {
3176 // CHECK-NEXT:          "id": "0x{{.*}}",
3177 // CHECK-NEXT:          "kind": "DeclRefExpr",
3178 // CHECK-NEXT:          "range": {
3179 // CHECK-NEXT:           "begin": {
3180 // CHECK-NEXT:            "offset": 672,
3181 // CHECK-NEXT:            "col": 7,
3182 // CHECK-NEXT:            "tokLen": 1
3183 // CHECK-NEXT:           },
3184 // CHECK-NEXT:           "end": {
3185 // CHECK-NEXT:            "offset": 672,
3186 // CHECK-NEXT:            "col": 7,
3187 // CHECK-NEXT:            "tokLen": 1
3188 // CHECK-NEXT:           }
3189 // CHECK-NEXT:          },
3190 // CHECK-NEXT:          "type": {
3191 // CHECK-NEXT:           "qualType": "int"
3192 // CHECK-NEXT:          },
3193 // CHECK-NEXT:          "valueCategory": "lvalue",
3194 // CHECK-NEXT:          "referencedDecl": {
3195 // CHECK-NEXT:           "id": "0x{{.*}}",
3196 // CHECK-NEXT:           "kind": "ParmVarDecl",
3197 // CHECK-NEXT:           "name": "b",
3198 // CHECK-NEXT:           "type": {
3199 // CHECK-NEXT:            "qualType": "int"
3200 // CHECK-NEXT:           }
3201 // CHECK-NEXT:          }
3202 // CHECK-NEXT:         }
3203 // CHECK-NEXT:        ]
3204 // CHECK-NEXT:       }
3205 // CHECK-NEXT:      ]
3206 // CHECK-NEXT:     },
3207 // CHECK-NEXT:     {
3208 // CHECK-NEXT:      "id": "0x{{.*}}",
3209 // CHECK-NEXT:      "kind": "BinaryOperator",
3210 // CHECK-NEXT:      "range": {
3211 // CHECK-NEXT:       "begin": {
3212 // CHECK-NEXT:        "offset": 678,
3213 // CHECK-NEXT:        "line": 48,
3214 // CHECK-NEXT:        "col": 3,
3215 // CHECK-NEXT:        "tokLen": 1
3216 // CHECK-NEXT:       },
3217 // CHECK-NEXT:       "end": {
3218 // CHECK-NEXT:        "offset": 682,
3219 // CHECK-NEXT:        "col": 7,
3220 // CHECK-NEXT:        "tokLen": 1
3221 // CHECK-NEXT:       }
3222 // CHECK-NEXT:      },
3223 // CHECK-NEXT:      "type": {
3224 // CHECK-NEXT:       "qualType": "int"
3225 // CHECK-NEXT:      },
3226 // CHECK-NEXT:      "valueCategory": "rvalue",
3227 // CHECK-NEXT:      "opcode": "%",
3228 // CHECK-NEXT:      "inner": [
3229 // CHECK-NEXT:       {
3230 // CHECK-NEXT:        "id": "0x{{.*}}",
3231 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3232 // CHECK-NEXT:        "range": {
3233 // CHECK-NEXT:         "begin": {
3234 // CHECK-NEXT:          "offset": 678,
3235 // CHECK-NEXT:          "col": 3,
3236 // CHECK-NEXT:          "tokLen": 1
3237 // CHECK-NEXT:         },
3238 // CHECK-NEXT:         "end": {
3239 // CHECK-NEXT:          "offset": 678,
3240 // CHECK-NEXT:          "col": 3,
3241 // CHECK-NEXT:          "tokLen": 1
3242 // CHECK-NEXT:         }
3243 // CHECK-NEXT:        },
3244 // CHECK-NEXT:        "type": {
3245 // CHECK-NEXT:         "qualType": "int"
3246 // CHECK-NEXT:        },
3247 // CHECK-NEXT:        "valueCategory": "rvalue",
3248 // CHECK-NEXT:        "castKind": "LValueToRValue",
3249 // CHECK-NEXT:        "inner": [
3250 // CHECK-NEXT:         {
3251 // CHECK-NEXT:          "id": "0x{{.*}}",
3252 // CHECK-NEXT:          "kind": "DeclRefExpr",
3253 // CHECK-NEXT:          "range": {
3254 // CHECK-NEXT:           "begin": {
3255 // CHECK-NEXT:            "offset": 678,
3256 // CHECK-NEXT:            "col": 3,
3257 // CHECK-NEXT:            "tokLen": 1
3258 // CHECK-NEXT:           },
3259 // CHECK-NEXT:           "end": {
3260 // CHECK-NEXT:            "offset": 678,
3261 // CHECK-NEXT:            "col": 3,
3262 // CHECK-NEXT:            "tokLen": 1
3263 // CHECK-NEXT:           }
3264 // CHECK-NEXT:          },
3265 // CHECK-NEXT:          "type": {
3266 // CHECK-NEXT:           "qualType": "int"
3267 // CHECK-NEXT:          },
3268 // CHECK-NEXT:          "valueCategory": "lvalue",
3269 // CHECK-NEXT:          "referencedDecl": {
3270 // CHECK-NEXT:           "id": "0x{{.*}}",
3271 // CHECK-NEXT:           "kind": "ParmVarDecl",
3272 // CHECK-NEXT:           "name": "a",
3273 // CHECK-NEXT:           "type": {
3274 // CHECK-NEXT:            "qualType": "int"
3275 // CHECK-NEXT:           }
3276 // CHECK-NEXT:          }
3277 // CHECK-NEXT:         }
3278 // CHECK-NEXT:        ]
3279 // CHECK-NEXT:       },
3280 // CHECK-NEXT:       {
3281 // CHECK-NEXT:        "id": "0x{{.*}}",
3282 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3283 // CHECK-NEXT:        "range": {
3284 // CHECK-NEXT:         "begin": {
3285 // CHECK-NEXT:          "offset": 682,
3286 // CHECK-NEXT:          "col": 7,
3287 // CHECK-NEXT:          "tokLen": 1
3288 // CHECK-NEXT:         },
3289 // CHECK-NEXT:         "end": {
3290 // CHECK-NEXT:          "offset": 682,
3291 // CHECK-NEXT:          "col": 7,
3292 // CHECK-NEXT:          "tokLen": 1
3293 // CHECK-NEXT:         }
3294 // CHECK-NEXT:        },
3295 // CHECK-NEXT:        "type": {
3296 // CHECK-NEXT:         "qualType": "int"
3297 // CHECK-NEXT:        },
3298 // CHECK-NEXT:        "valueCategory": "rvalue",
3299 // CHECK-NEXT:        "castKind": "LValueToRValue",
3300 // CHECK-NEXT:        "inner": [
3301 // CHECK-NEXT:         {
3302 // CHECK-NEXT:          "id": "0x{{.*}}",
3303 // CHECK-NEXT:          "kind": "DeclRefExpr",
3304 // CHECK-NEXT:          "range": {
3305 // CHECK-NEXT:           "begin": {
3306 // CHECK-NEXT:            "offset": 682,
3307 // CHECK-NEXT:            "col": 7,
3308 // CHECK-NEXT:            "tokLen": 1
3309 // CHECK-NEXT:           },
3310 // CHECK-NEXT:           "end": {
3311 // CHECK-NEXT:            "offset": 682,
3312 // CHECK-NEXT:            "col": 7,
3313 // CHECK-NEXT:            "tokLen": 1
3314 // CHECK-NEXT:           }
3315 // CHECK-NEXT:          },
3316 // CHECK-NEXT:          "type": {
3317 // CHECK-NEXT:           "qualType": "int"
3318 // CHECK-NEXT:          },
3319 // CHECK-NEXT:          "valueCategory": "lvalue",
3320 // CHECK-NEXT:          "referencedDecl": {
3321 // CHECK-NEXT:           "id": "0x{{.*}}",
3322 // CHECK-NEXT:           "kind": "ParmVarDecl",
3323 // CHECK-NEXT:           "name": "b",
3324 // CHECK-NEXT:           "type": {
3325 // CHECK-NEXT:            "qualType": "int"
3326 // CHECK-NEXT:           }
3327 // CHECK-NEXT:          }
3328 // CHECK-NEXT:         }
3329 // CHECK-NEXT:        ]
3330 // CHECK-NEXT:       }
3331 // CHECK-NEXT:      ]
3332 // CHECK-NEXT:     }
3333 // CHECK-NEXT:    ]
3334 // CHECK-NEXT:   }
3335 // CHECK-NEXT:  ]
3336 // CHECK-NEXT: }
3337 
3338 
3339 // CHECK:  "kind": "FunctionDecl",
3340 // CHECK-NEXT:  "loc": {
3341 // CHECK-NEXT:   "offset": 696,
3342 // CHECK-NEXT:   "line": 51,
3343 // CHECK-NEXT:   "col": 6,
3344 // CHECK-NEXT:   "tokLen": 14
3345 // CHECK-NEXT:  },
3346 // CHECK-NEXT:  "range": {
3347 // CHECK-NEXT:   "begin": {
3348 // CHECK-NEXT:    "offset": 691,
3349 // CHECK-NEXT:    "col": 1,
3350 // CHECK-NEXT:    "tokLen": 4
3351 // CHECK-NEXT:   },
3352 // CHECK-NEXT:   "end": {
3353 // CHECK-NEXT:    "offset": 894,
3354 // CHECK-NEXT:    "line": 66,
3355 // CHECK-NEXT:    "col": 1,
3356 // CHECK-NEXT:    "tokLen": 1
3357 // CHECK-NEXT:   }
3358 // CHECK-NEXT:  },
3359 // CHECK-NEXT:  "isUsed": true,
3360 // CHECK-NEXT:  "name": "UnaryOperators",
3361 // CHECK-NEXT:  "mangledName": "UnaryOperators",
3362 // CHECK-NEXT:  "type": {
3363 // CHECK-NEXT:   "qualType": "void (int, int *)"
3364 // CHECK-NEXT:  },
3365 // CHECK-NEXT:  "inner": [
3366 // CHECK-NEXT:   {
3367 // CHECK-NEXT:    "id": "0x{{.*}}",
3368 // CHECK-NEXT:    "kind": "ParmVarDecl",
3369 // CHECK-NEXT:    "loc": {
3370 // CHECK-NEXT:     "offset": 715,
3371 // CHECK-NEXT:     "line": 51,
3372 // CHECK-NEXT:     "col": 25,
3373 // CHECK-NEXT:     "tokLen": 1
3374 // CHECK-NEXT:    },
3375 // CHECK-NEXT:    "range": {
3376 // CHECK-NEXT:     "begin": {
3377 // CHECK-NEXT:      "offset": 711,
3378 // CHECK-NEXT:      "col": 21,
3379 // CHECK-NEXT:      "tokLen": 3
3380 // CHECK-NEXT:     },
3381 // CHECK-NEXT:     "end": {
3382 // CHECK-NEXT:      "offset": 715,
3383 // CHECK-NEXT:      "col": 25,
3384 // CHECK-NEXT:      "tokLen": 1
3385 // CHECK-NEXT:     }
3386 // CHECK-NEXT:    },
3387 // CHECK-NEXT:    "isUsed": true,
3388 // CHECK-NEXT:    "name": "a",
3389 // CHECK-NEXT:    "mangledName": "a",
3390 // CHECK-NEXT:    "type": {
3391 // CHECK-NEXT:     "qualType": "int"
3392 // CHECK-NEXT:    }
3393 // CHECK-NEXT:   },
3394 // CHECK-NEXT:   {
3395 // CHECK-NEXT:    "id": "0x{{.*}}",
3396 // CHECK-NEXT:    "kind": "ParmVarDecl",
3397 // CHECK-NEXT:    "loc": {
3398 // CHECK-NEXT:     "offset": 723,
3399 // CHECK-NEXT:     "col": 33,
3400 // CHECK-NEXT:     "tokLen": 1
3401 // CHECK-NEXT:    },
3402 // CHECK-NEXT:    "range": {
3403 // CHECK-NEXT:     "begin": {
3404 // CHECK-NEXT:      "offset": 718,
3405 // CHECK-NEXT:      "col": 28,
3406 // CHECK-NEXT:      "tokLen": 3
3407 // CHECK-NEXT:     },
3408 // CHECK-NEXT:     "end": {
3409 // CHECK-NEXT:      "offset": 723,
3410 // CHECK-NEXT:      "col": 33,
3411 // CHECK-NEXT:      "tokLen": 1
3412 // CHECK-NEXT:     }
3413 // CHECK-NEXT:    },
3414 // CHECK-NEXT:    "isUsed": true,
3415 // CHECK-NEXT:    "name": "b",
3416 // CHECK-NEXT:    "mangledName": "b",
3417 // CHECK-NEXT:    "type": {
3418 // CHECK-NEXT:     "qualType": "int *"
3419 // CHECK-NEXT:    }
3420 // CHECK-NEXT:   },
3421 // CHECK-NEXT:   {
3422 // CHECK-NEXT:    "id": "0x{{.*}}",
3423 // CHECK-NEXT:    "kind": "CompoundStmt",
3424 // CHECK-NEXT:    "range": {
3425 // CHECK-NEXT:     "begin": {
3426 // CHECK-NEXT:      "offset": 726,
3427 // CHECK-NEXT:      "col": 36,
3428 // CHECK-NEXT:      "tokLen": 1
3429 // CHECK-NEXT:     },
3430 // CHECK-NEXT:     "end": {
3431 // CHECK-NEXT:      "offset": 894,
3432 // CHECK-NEXT:      "line": 66,
3433 // CHECK-NEXT:      "col": 1,
3434 // CHECK-NEXT:      "tokLen": 1
3435 // CHECK-NEXT:     }
3436 // CHECK-NEXT:    },
3437 // CHECK-NEXT:    "inner": [
3438 // CHECK-NEXT:     {
3439 // CHECK-NEXT:      "id": "0x{{.*}}",
3440 // CHECK-NEXT:      "kind": "CStyleCastExpr",
3441 // CHECK-NEXT:      "range": {
3442 // CHECK-NEXT:       "begin": {
3443 // CHECK-NEXT:        "offset": 752,
3444 // CHECK-NEXT:        "line": 53,
3445 // CHECK-NEXT:        "col": 3,
3446 // CHECK-NEXT:        "tokLen": 1
3447 // CHECK-NEXT:       },
3448 // CHECK-NEXT:       "end": {
3449 // CHECK-NEXT:        "offset": 759,
3450 // CHECK-NEXT:        "col": 10,
3451 // CHECK-NEXT:        "tokLen": 1
3452 // CHECK-NEXT:       }
3453 // CHECK-NEXT:      },
3454 // CHECK-NEXT:      "type": {
3455 // CHECK-NEXT:       "qualType": "float"
3456 // CHECK-NEXT:      },
3457 // CHECK-NEXT:      "valueCategory": "rvalue",
3458 // CHECK-NEXT:      "castKind": "IntegralToFloating",
3459 // CHECK-NEXT:      "inner": [
3460 // CHECK-NEXT:       {
3461 // CHECK-NEXT:        "id": "0x{{.*}}",
3462 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3463 // CHECK-NEXT:        "range": {
3464 // CHECK-NEXT:         "begin": {
3465 // CHECK-NEXT:          "offset": 759,
3466 // CHECK-NEXT:          "col": 10,
3467 // CHECK-NEXT:          "tokLen": 1
3468 // CHECK-NEXT:         },
3469 // CHECK-NEXT:         "end": {
3470 // CHECK-NEXT:          "offset": 759,
3471 // CHECK-NEXT:          "col": 10,
3472 // CHECK-NEXT:          "tokLen": 1
3473 // CHECK-NEXT:         }
3474 // CHECK-NEXT:        },
3475 // CHECK-NEXT:        "type": {
3476 // CHECK-NEXT:         "qualType": "int"
3477 // CHECK-NEXT:        },
3478 // CHECK-NEXT:        "valueCategory": "rvalue",
3479 // CHECK-NEXT:        "castKind": "LValueToRValue",
3480 // CHECK-NEXT:        "isPartOfExplicitCast": true,
3481 // CHECK-NEXT:        "inner": [
3482 // CHECK-NEXT:         {
3483 // CHECK-NEXT:          "id": "0x{{.*}}",
3484 // CHECK-NEXT:          "kind": "DeclRefExpr",
3485 // CHECK-NEXT:          "range": {
3486 // CHECK-NEXT:           "begin": {
3487 // CHECK-NEXT:            "offset": 759,
3488 // CHECK-NEXT:            "col": 10,
3489 // CHECK-NEXT:            "tokLen": 1
3490 // CHECK-NEXT:           },
3491 // CHECK-NEXT:           "end": {
3492 // CHECK-NEXT:            "offset": 759,
3493 // CHECK-NEXT:            "col": 10,
3494 // CHECK-NEXT:            "tokLen": 1
3495 // CHECK-NEXT:           }
3496 // CHECK-NEXT:          },
3497 // CHECK-NEXT:          "type": {
3498 // CHECK-NEXT:           "qualType": "int"
3499 // CHECK-NEXT:          },
3500 // CHECK-NEXT:          "valueCategory": "lvalue",
3501 // CHECK-NEXT:          "referencedDecl": {
3502 // CHECK-NEXT:           "id": "0x{{.*}}",
3503 // CHECK-NEXT:           "kind": "ParmVarDecl",
3504 // CHECK-NEXT:           "name": "a",
3505 // CHECK-NEXT:           "type": {
3506 // CHECK-NEXT:            "qualType": "int"
3507 // CHECK-NEXT:           }
3508 // CHECK-NEXT:          }
3509 // CHECK-NEXT:         }
3510 // CHECK-NEXT:        ]
3511 // CHECK-NEXT:       }
3512 // CHECK-NEXT:      ]
3513 // CHECK-NEXT:     },
3514 // CHECK-NEXT:     {
3515 // CHECK-NEXT:      "id": "0x{{.*}}",
3516 // CHECK-NEXT:      "kind": "UnaryOperator",
3517 // CHECK-NEXT:      "range": {
3518 // CHECK-NEXT:       "begin": {
3519 // CHECK-NEXT:        "offset": 812,
3520 // CHECK-NEXT:        "line": 57,
3521 // CHECK-NEXT:        "col": 3,
3522 // CHECK-NEXT:        "tokLen": 1
3523 // CHECK-NEXT:       },
3524 // CHECK-NEXT:       "end": {
3525 // CHECK-NEXT:        "offset": 813,
3526 // CHECK-NEXT:        "col": 4,
3527 // CHECK-NEXT:        "tokLen": 1
3528 // CHECK-NEXT:       }
3529 // CHECK-NEXT:      },
3530 // CHECK-NEXT:      "type": {
3531 // CHECK-NEXT:       "qualType": "int"
3532 // CHECK-NEXT:      },
3533 // CHECK-NEXT:      "valueCategory": "rvalue",
3534 // CHECK-NEXT:      "isPostfix": false,
3535 // CHECK-NEXT:      "opcode": "-",
3536 // CHECK-NEXT:      "inner": [
3537 // CHECK-NEXT:       {
3538 // CHECK-NEXT:        "id": "0x{{.*}}",
3539 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3540 // CHECK-NEXT:        "range": {
3541 // CHECK-NEXT:         "begin": {
3542 // CHECK-NEXT:          "offset": 813,
3543 // CHECK-NEXT:          "col": 4,
3544 // CHECK-NEXT:          "tokLen": 1
3545 // CHECK-NEXT:         },
3546 // CHECK-NEXT:         "end": {
3547 // CHECK-NEXT:          "offset": 813,
3548 // CHECK-NEXT:          "col": 4,
3549 // CHECK-NEXT:          "tokLen": 1
3550 // CHECK-NEXT:         }
3551 // CHECK-NEXT:        },
3552 // CHECK-NEXT:        "type": {
3553 // CHECK-NEXT:         "qualType": "int"
3554 // CHECK-NEXT:        },
3555 // CHECK-NEXT:        "valueCategory": "rvalue",
3556 // CHECK-NEXT:        "castKind": "LValueToRValue",
3557 // CHECK-NEXT:        "inner": [
3558 // CHECK-NEXT:         {
3559 // CHECK-NEXT:          "id": "0x{{.*}}",
3560 // CHECK-NEXT:          "kind": "DeclRefExpr",
3561 // CHECK-NEXT:          "range": {
3562 // CHECK-NEXT:           "begin": {
3563 // CHECK-NEXT:            "offset": 813,
3564 // CHECK-NEXT:            "col": 4,
3565 // CHECK-NEXT:            "tokLen": 1
3566 // CHECK-NEXT:           },
3567 // CHECK-NEXT:           "end": {
3568 // CHECK-NEXT:            "offset": 813,
3569 // CHECK-NEXT:            "col": 4,
3570 // CHECK-NEXT:            "tokLen": 1
3571 // CHECK-NEXT:           }
3572 // CHECK-NEXT:          },
3573 // CHECK-NEXT:          "type": {
3574 // CHECK-NEXT:           "qualType": "int"
3575 // CHECK-NEXT:          },
3576 // CHECK-NEXT:          "valueCategory": "lvalue",
3577 // CHECK-NEXT:          "referencedDecl": {
3578 // CHECK-NEXT:           "id": "0x{{.*}}",
3579 // CHECK-NEXT:           "kind": "ParmVarDecl",
3580 // CHECK-NEXT:           "name": "a",
3581 // CHECK-NEXT:           "type": {
3582 // CHECK-NEXT:            "qualType": "int"
3583 // CHECK-NEXT:           }
3584 // CHECK-NEXT:          }
3585 // CHECK-NEXT:         }
3586 // CHECK-NEXT:        ]
3587 // CHECK-NEXT:       }
3588 // CHECK-NEXT:      ]
3589 // CHECK-NEXT:     },
3590 // CHECK-NEXT:     {
3591 // CHECK-NEXT:      "id": "0x{{.*}}",
3592 // CHECK-NEXT:      "kind": "UnaryOperator",
3593 // CHECK-NEXT:      "range": {
3594 // CHECK-NEXT:       "begin": {
3595 // CHECK-NEXT:        "offset": 819,
3596 // CHECK-NEXT:        "line": 58,
3597 // CHECK-NEXT:        "col": 3,
3598 // CHECK-NEXT:        "tokLen": 1
3599 // CHECK-NEXT:       },
3600 // CHECK-NEXT:       "end": {
3601 // CHECK-NEXT:        "offset": 820,
3602 // CHECK-NEXT:        "col": 4,
3603 // CHECK-NEXT:        "tokLen": 1
3604 // CHECK-NEXT:       }
3605 // CHECK-NEXT:      },
3606 // CHECK-NEXT:      "type": {
3607 // CHECK-NEXT:       "qualType": "int"
3608 // CHECK-NEXT:      },
3609 // CHECK-NEXT:      "valueCategory": "rvalue",
3610 // CHECK-NEXT:      "isPostfix": false,
3611 // CHECK-NEXT:      "opcode": "+",
3612 // CHECK-NEXT:      "canOverflow": false,
3613 // CHECK-NEXT:      "inner": [
3614 // CHECK-NEXT:       {
3615 // CHECK-NEXT:        "id": "0x{{.*}}",
3616 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3617 // CHECK-NEXT:        "range": {
3618 // CHECK-NEXT:         "begin": {
3619 // CHECK-NEXT:          "offset": 820,
3620 // CHECK-NEXT:          "col": 4,
3621 // CHECK-NEXT:          "tokLen": 1
3622 // CHECK-NEXT:         },
3623 // CHECK-NEXT:         "end": {
3624 // CHECK-NEXT:          "offset": 820,
3625 // CHECK-NEXT:          "col": 4,
3626 // CHECK-NEXT:          "tokLen": 1
3627 // CHECK-NEXT:         }
3628 // CHECK-NEXT:        },
3629 // CHECK-NEXT:        "type": {
3630 // CHECK-NEXT:         "qualType": "int"
3631 // CHECK-NEXT:        },
3632 // CHECK-NEXT:        "valueCategory": "rvalue",
3633 // CHECK-NEXT:        "castKind": "LValueToRValue",
3634 // CHECK-NEXT:        "inner": [
3635 // CHECK-NEXT:         {
3636 // CHECK-NEXT:          "id": "0x{{.*}}",
3637 // CHECK-NEXT:          "kind": "DeclRefExpr",
3638 // CHECK-NEXT:          "range": {
3639 // CHECK-NEXT:           "begin": {
3640 // CHECK-NEXT:            "offset": 820,
3641 // CHECK-NEXT:            "col": 4,
3642 // CHECK-NEXT:            "tokLen": 1
3643 // CHECK-NEXT:           },
3644 // CHECK-NEXT:           "end": {
3645 // CHECK-NEXT:            "offset": 820,
3646 // CHECK-NEXT:            "col": 4,
3647 // CHECK-NEXT:            "tokLen": 1
3648 // CHECK-NEXT:           }
3649 // CHECK-NEXT:          },
3650 // CHECK-NEXT:          "type": {
3651 // CHECK-NEXT:           "qualType": "int"
3652 // CHECK-NEXT:          },
3653 // CHECK-NEXT:          "valueCategory": "lvalue",
3654 // CHECK-NEXT:          "referencedDecl": {
3655 // CHECK-NEXT:           "id": "0x{{.*}}",
3656 // CHECK-NEXT:           "kind": "ParmVarDecl",
3657 // CHECK-NEXT:           "name": "a",
3658 // CHECK-NEXT:           "type": {
3659 // CHECK-NEXT:            "qualType": "int"
3660 // CHECK-NEXT:           }
3661 // CHECK-NEXT:          }
3662 // CHECK-NEXT:         }
3663 // CHECK-NEXT:        ]
3664 // CHECK-NEXT:       }
3665 // CHECK-NEXT:      ]
3666 // CHECK-NEXT:     },
3667 // CHECK-NEXT:     {
3668 // CHECK-NEXT:      "id": "0x{{.*}}",
3669 // CHECK-NEXT:      "kind": "UnaryOperator",
3670 // CHECK-NEXT:      "range": {
3671 // CHECK-NEXT:       "begin": {
3672 // CHECK-NEXT:        "offset": 826,
3673 // CHECK-NEXT:        "line": 59,
3674 // CHECK-NEXT:        "col": 3,
3675 // CHECK-NEXT:        "tokLen": 1
3676 // CHECK-NEXT:       },
3677 // CHECK-NEXT:       "end": {
3678 // CHECK-NEXT:        "offset": 827,
3679 // CHECK-NEXT:        "col": 4,
3680 // CHECK-NEXT:        "tokLen": 1
3681 // CHECK-NEXT:       }
3682 // CHECK-NEXT:      },
3683 // CHECK-NEXT:      "type": {
3684 // CHECK-NEXT:       "qualType": "int *"
3685 // CHECK-NEXT:      },
3686 // CHECK-NEXT:      "valueCategory": "rvalue",
3687 // CHECK-NEXT:      "isPostfix": false,
3688 // CHECK-NEXT:      "opcode": "&",
3689 // CHECK-NEXT:      "canOverflow": false,
3690 // CHECK-NEXT:      "inner": [
3691 // CHECK-NEXT:       {
3692 // CHECK-NEXT:        "id": "0x{{.*}}",
3693 // CHECK-NEXT:        "kind": "DeclRefExpr",
3694 // CHECK-NEXT:        "range": {
3695 // CHECK-NEXT:         "begin": {
3696 // CHECK-NEXT:          "offset": 827,
3697 // CHECK-NEXT:          "col": 4,
3698 // CHECK-NEXT:          "tokLen": 1
3699 // CHECK-NEXT:         },
3700 // CHECK-NEXT:         "end": {
3701 // CHECK-NEXT:          "offset": 827,
3702 // CHECK-NEXT:          "col": 4,
3703 // CHECK-NEXT:          "tokLen": 1
3704 // CHECK-NEXT:         }
3705 // CHECK-NEXT:        },
3706 // CHECK-NEXT:        "type": {
3707 // CHECK-NEXT:         "qualType": "int"
3708 // CHECK-NEXT:        },
3709 // CHECK-NEXT:        "valueCategory": "lvalue",
3710 // CHECK-NEXT:        "referencedDecl": {
3711 // CHECK-NEXT:         "id": "0x{{.*}}",
3712 // CHECK-NEXT:         "kind": "ParmVarDecl",
3713 // CHECK-NEXT:         "name": "a",
3714 // CHECK-NEXT:         "type": {
3715 // CHECK-NEXT:          "qualType": "int"
3716 // CHECK-NEXT:         }
3717 // CHECK-NEXT:        }
3718 // CHECK-NEXT:       }
3719 // CHECK-NEXT:      ]
3720 // CHECK-NEXT:     },
3721 // CHECK-NEXT:     {
3722 // CHECK-NEXT:      "id": "0x{{.*}}",
3723 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
3724 // CHECK-NEXT:      "range": {
3725 // CHECK-NEXT:       "begin": {
3726 // CHECK-NEXT:        "offset": 833,
3727 // CHECK-NEXT:        "line": 60,
3728 // CHECK-NEXT:        "col": 3,
3729 // CHECK-NEXT:        "tokLen": 1
3730 // CHECK-NEXT:       },
3731 // CHECK-NEXT:       "end": {
3732 // CHECK-NEXT:        "offset": 834,
3733 // CHECK-NEXT:        "col": 4,
3734 // CHECK-NEXT:        "tokLen": 1
3735 // CHECK-NEXT:       }
3736 // CHECK-NEXT:      },
3737 // CHECK-NEXT:      "type": {
3738 // CHECK-NEXT:       "qualType": "int"
3739 // CHECK-NEXT:      },
3740 // CHECK-NEXT:      "valueCategory": "rvalue",
3741 // CHECK-NEXT:      "castKind": "LValueToRValue",
3742 // CHECK-NEXT:      "inner": [
3743 // CHECK-NEXT:       {
3744 // CHECK-NEXT:        "id": "0x{{.*}}",
3745 // CHECK-NEXT:        "kind": "UnaryOperator",
3746 // CHECK-NEXT:        "range": {
3747 // CHECK-NEXT:         "begin": {
3748 // CHECK-NEXT:          "offset": 833,
3749 // CHECK-NEXT:          "col": 3,
3750 // CHECK-NEXT:          "tokLen": 1
3751 // CHECK-NEXT:         },
3752 // CHECK-NEXT:         "end": {
3753 // CHECK-NEXT:          "offset": 834,
3754 // CHECK-NEXT:          "col": 4,
3755 // CHECK-NEXT:          "tokLen": 1
3756 // CHECK-NEXT:         }
3757 // CHECK-NEXT:        },
3758 // CHECK-NEXT:        "type": {
3759 // CHECK-NEXT:         "qualType": "int"
3760 // CHECK-NEXT:        },
3761 // CHECK-NEXT:        "valueCategory": "lvalue",
3762 // CHECK-NEXT:        "isPostfix": false,
3763 // CHECK-NEXT:        "opcode": "*",
3764 // CHECK-NEXT:        "canOverflow": false,
3765 // CHECK-NEXT:        "inner": [
3766 // CHECK-NEXT:         {
3767 // CHECK-NEXT:          "id": "0x{{.*}}",
3768 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
3769 // CHECK-NEXT:          "range": {
3770 // CHECK-NEXT:           "begin": {
3771 // CHECK-NEXT:            "offset": 834,
3772 // CHECK-NEXT:            "col": 4,
3773 // CHECK-NEXT:            "tokLen": 1
3774 // CHECK-NEXT:           },
3775 // CHECK-NEXT:           "end": {
3776 // CHECK-NEXT:            "offset": 834,
3777 // CHECK-NEXT:            "col": 4,
3778 // CHECK-NEXT:            "tokLen": 1
3779 // CHECK-NEXT:           }
3780 // CHECK-NEXT:          },
3781 // CHECK-NEXT:          "type": {
3782 // CHECK-NEXT:           "qualType": "int *"
3783 // CHECK-NEXT:          },
3784 // CHECK-NEXT:          "valueCategory": "rvalue",
3785 // CHECK-NEXT:          "castKind": "LValueToRValue",
3786 // CHECK-NEXT:          "inner": [
3787 // CHECK-NEXT:           {
3788 // CHECK-NEXT:            "id": "0x{{.*}}",
3789 // CHECK-NEXT:            "kind": "DeclRefExpr",
3790 // CHECK-NEXT:            "range": {
3791 // CHECK-NEXT:             "begin": {
3792 // CHECK-NEXT:              "offset": 834,
3793 // CHECK-NEXT:              "col": 4,
3794 // CHECK-NEXT:              "tokLen": 1
3795 // CHECK-NEXT:             },
3796 // CHECK-NEXT:             "end": {
3797 // CHECK-NEXT:              "offset": 834,
3798 // CHECK-NEXT:              "col": 4,
3799 // CHECK-NEXT:              "tokLen": 1
3800 // CHECK-NEXT:             }
3801 // CHECK-NEXT:            },
3802 // CHECK-NEXT:            "type": {
3803 // CHECK-NEXT:             "qualType": "int *"
3804 // CHECK-NEXT:            },
3805 // CHECK-NEXT:            "valueCategory": "lvalue",
3806 // CHECK-NEXT:            "referencedDecl": {
3807 // CHECK-NEXT:             "id": "0x{{.*}}",
3808 // CHECK-NEXT:             "kind": "ParmVarDecl",
3809 // CHECK-NEXT:             "name": "b",
3810 // CHECK-NEXT:             "type": {
3811 // CHECK-NEXT:              "qualType": "int *"
3812 // CHECK-NEXT:             }
3813 // CHECK-NEXT:            }
3814 // CHECK-NEXT:           }
3815 // CHECK-NEXT:          ]
3816 // CHECK-NEXT:         }
3817 // CHECK-NEXT:        ]
3818 // CHECK-NEXT:       }
3819 // CHECK-NEXT:      ]
3820 // CHECK-NEXT:     },
3821 // CHECK-NEXT:     {
3822 // CHECK-NEXT:      "id": "0x{{.*}}",
3823 // CHECK-NEXT:      "kind": "UnaryOperator",
3824 // CHECK-NEXT:      "range": {
3825 // CHECK-NEXT:       "begin": {
3826 // CHECK-NEXT:        "offset": 840,
3827 // CHECK-NEXT:        "line": 61,
3828 // CHECK-NEXT:        "col": 3,
3829 // CHECK-NEXT:        "tokLen": 1
3830 // CHECK-NEXT:       },
3831 // CHECK-NEXT:       "end": {
3832 // CHECK-NEXT:        "offset": 841,
3833 // CHECK-NEXT:        "col": 4,
3834 // CHECK-NEXT:        "tokLen": 1
3835 // CHECK-NEXT:       }
3836 // CHECK-NEXT:      },
3837 // CHECK-NEXT:      "type": {
3838 // CHECK-NEXT:       "qualType": "int"
3839 // CHECK-NEXT:      },
3840 // CHECK-NEXT:      "valueCategory": "rvalue",
3841 // CHECK-NEXT:      "isPostfix": false,
3842 // CHECK-NEXT:      "opcode": "!",
3843 // CHECK-NEXT:      "canOverflow": false,
3844 // CHECK-NEXT:      "inner": [
3845 // CHECK-NEXT:       {
3846 // CHECK-NEXT:        "id": "0x{{.*}}",
3847 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
3848 // CHECK-NEXT:        "range": {
3849 // CHECK-NEXT:         "begin": {
3850 // CHECK-NEXT:          "offset": 841,
3851 // CHECK-NEXT:          "col": 4,
3852 // CHECK-NEXT:          "tokLen": 1
3853 // CHECK-NEXT:         },
3854 // CHECK-NEXT:         "end": {
3855 // CHECK-NEXT:          "offset": 841,
3856 // CHECK-NEXT:          "col": 4,
3857 // CHECK-NEXT:          "tokLen": 1
3858 // CHECK-NEXT:         }
3859 // CHECK-NEXT:        },
3860 // CHECK-NEXT:        "type": {
3861 // CHECK-NEXT:         "qualType": "int"
3862 // CHECK-NEXT:        },
3863 // CHECK-NEXT:        "valueCategory": "rvalue",
3864 // CHECK-NEXT:        "castKind": "LValueToRValue",
3865 // CHECK-NEXT:        "inner": [
3866 // CHECK-NEXT:         {
3867 // CHECK-NEXT:          "id": "0x{{.*}}",
3868 // CHECK-NEXT:          "kind": "DeclRefExpr",
3869 // CHECK-NEXT:          "range": {
3870 // CHECK-NEXT:           "begin": {
3871 // CHECK-NEXT:            "offset": 841,
3872 // CHECK-NEXT:            "col": 4,
3873 // CHECK-NEXT:            "tokLen": 1
3874 // CHECK-NEXT:           },
3875 // CHECK-NEXT:           "end": {
3876 // CHECK-NEXT:            "offset": 841,
3877 // CHECK-NEXT:            "col": 4,
3878 // CHECK-NEXT:            "tokLen": 1
3879 // CHECK-NEXT:           }
3880 // CHECK-NEXT:          },
3881 // CHECK-NEXT:          "type": {
3882 // CHECK-NEXT:           "qualType": "int"
3883 // CHECK-NEXT:          },
3884 // CHECK-NEXT:          "valueCategory": "lvalue",
3885 // CHECK-NEXT:          "referencedDecl": {
3886 // CHECK-NEXT:           "id": "0x{{.*}}",
3887 // CHECK-NEXT:           "kind": "ParmVarDecl",
3888 // CHECK-NEXT:           "name": "a",
3889 // CHECK-NEXT:           "type": {
3890 // CHECK-NEXT:            "qualType": "int"
3891 // CHECK-NEXT:           }
3892 // CHECK-NEXT:          }
3893 // CHECK-NEXT:         }
3894 // CHECK-NEXT:        ]
3895 // CHECK-NEXT:       }
3896 // CHECK-NEXT:      ]
3897 // CHECK-NEXT:     },
3898 // CHECK-NEXT:     {
3899 // CHECK-NEXT:      "id": "0x{{.*}}",
3900 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
3901 // CHECK-NEXT:      "range": {
3902 // CHECK-NEXT:       "begin": {
3903 // CHECK-NEXT:        "offset": 849,
3904 // CHECK-NEXT:        "line": 63,
3905 // CHECK-NEXT:        "col": 3,
3906 // CHECK-NEXT:        "tokLen": 6
3907 // CHECK-NEXT:       },
3908 // CHECK-NEXT:       "end": {
3909 // CHECK-NEXT:        "offset": 856,
3910 // CHECK-NEXT:        "col": 10,
3911 // CHECK-NEXT:        "tokLen": 1
3912 // CHECK-NEXT:       }
3913 // CHECK-NEXT:      },
3914 // CHECK-NEXT:      "type": {
3915 // CHECK-NEXT:       "qualType": "unsigned long"
3916 // CHECK-NEXT:      },
3917 // CHECK-NEXT:      "valueCategory": "rvalue",
3918 // CHECK-NEXT:      "name": "sizeof",
3919 // CHECK-NEXT:      "inner": [
3920 // CHECK-NEXT:       {
3921 // CHECK-NEXT:        "id": "0x{{.*}}",
3922 // CHECK-NEXT:        "kind": "DeclRefExpr",
3923 // CHECK-NEXT:        "range": {
3924 // CHECK-NEXT:         "begin": {
3925 // CHECK-NEXT:          "offset": 856,
3926 // CHECK-NEXT:          "col": 10,
3927 // CHECK-NEXT:          "tokLen": 1
3928 // CHECK-NEXT:         },
3929 // CHECK-NEXT:         "end": {
3930 // CHECK-NEXT:          "offset": 856,
3931 // CHECK-NEXT:          "col": 10,
3932 // CHECK-NEXT:          "tokLen": 1
3933 // CHECK-NEXT:         }
3934 // CHECK-NEXT:        },
3935 // CHECK-NEXT:        "type": {
3936 // CHECK-NEXT:         "qualType": "int"
3937 // CHECK-NEXT:        },
3938 // CHECK-NEXT:        "valueCategory": "lvalue",
3939 // CHECK-NEXT:        "referencedDecl": {
3940 // CHECK-NEXT:         "id": "0x{{.*}}",
3941 // CHECK-NEXT:         "kind": "ParmVarDecl",
3942 // CHECK-NEXT:         "name": "a",
3943 // CHECK-NEXT:         "type": {
3944 // CHECK-NEXT:          "qualType": "int"
3945 // CHECK-NEXT:         }
3946 // CHECK-NEXT:        },
3947 // CHECK-NEXT:        "nonOdrUseReason": "unevaluated"
3948 // CHECK-NEXT:       }
3949 // CHECK-NEXT:      ]
3950 // CHECK-NEXT:     },
3951 // CHECK-NEXT:     {
3952 // CHECK-NEXT:      "id": "0x{{.*}}",
3953 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
3954 // CHECK-NEXT:      "range": {
3955 // CHECK-NEXT:       "begin": {
3956 // CHECK-NEXT:        "offset": 862,
3957 // CHECK-NEXT:        "line": 64,
3958 // CHECK-NEXT:        "col": 3,
3959 // CHECK-NEXT:        "tokLen": 6
3960 // CHECK-NEXT:       },
3961 // CHECK-NEXT:       "end": {
3962 // CHECK-NEXT:        "offset": 872,
3963 // CHECK-NEXT:        "col": 13,
3964 // CHECK-NEXT:        "tokLen": 1
3965 // CHECK-NEXT:       }
3966 // CHECK-NEXT:      },
3967 // CHECK-NEXT:      "type": {
3968 // CHECK-NEXT:       "qualType": "unsigned long"
3969 // CHECK-NEXT:      },
3970 // CHECK-NEXT:      "valueCategory": "rvalue",
3971 // CHECK-NEXT:      "name": "sizeof",
3972 // CHECK-NEXT:      "argType": {
3973 // CHECK-NEXT:       "qualType": "int"
3974 // CHECK-NEXT:      }
3975 // CHECK-NEXT:     },
3976 // CHECK-NEXT:     {
3977 // CHECK-NEXT:      "id": "0x{{.*}}",
3978 // CHECK-NEXT:      "kind": "UnaryExprOrTypeTraitExpr",
3979 // CHECK-NEXT:      "range": {
3980 // CHECK-NEXT:       "begin": {
3981 // CHECK-NEXT:        "offset": 878,
3982 // CHECK-NEXT:        "line": 65,
3983 // CHECK-NEXT:        "col": 3,
3984 // CHECK-NEXT:        "tokLen": 8
3985 // CHECK-NEXT:       },
3986 // CHECK-NEXT:       "end": {
3987 // CHECK-NEXT:        "offset": 890,
3988 // CHECK-NEXT:        "col": 15,
3989 // CHECK-NEXT:        "tokLen": 1
3990 // CHECK-NEXT:       }
3991 // CHECK-NEXT:      },
3992 // CHECK-NEXT:      "type": {
3993 // CHECK-NEXT:       "qualType": "unsigned long"
3994 // CHECK-NEXT:      },
3995 // CHECK-NEXT:      "valueCategory": "rvalue",
3996 // CHECK-NEXT:      "name": "alignof",
3997 // CHECK-NEXT:      "argType": {
3998 // CHECK-NEXT:       "qualType": "int"
3999 // CHECK-NEXT:      }
4000 // CHECK-NEXT:     }
4001 // CHECK-NEXT:    ]
4002 // CHECK-NEXT:   }
4003 // CHECK-NEXT:  ]
4004 // CHECK-NEXT: }
4005 
4006 
4007 // CHECK:  "kind": "FunctionDecl",
4008 // CHECK-NEXT:  "loc": {
4009 // CHECK-NEXT:   "offset": 932,
4010 // CHECK-NEXT:   "line": 72,
4011 // CHECK-NEXT:   "col": 6,
4012 // CHECK-NEXT:   "tokLen": 16
4013 // CHECK-NEXT:  },
4014 // CHECK-NEXT:  "range": {
4015 // CHECK-NEXT:   "begin": {
4016 // CHECK-NEXT:    "offset": 927,
4017 // CHECK-NEXT:    "col": 1,
4018 // CHECK-NEXT:    "tokLen": 4
4019 // CHECK-NEXT:   },
4020 // CHECK-NEXT:   "end": {
4021 // CHECK-NEXT:    "offset": 1136,
4022 // CHECK-NEXT:    "line": 83,
4023 // CHECK-NEXT:    "col": 1,
4024 // CHECK-NEXT:    "tokLen": 1
4025 // CHECK-NEXT:   }
4026 // CHECK-NEXT:  },
4027 // CHECK-NEXT:  "name": "PostfixOperators",
4028 // CHECK-NEXT:  "mangledName": "PostfixOperators",
4029 // CHECK-NEXT:  "type": {
4030 // CHECK-NEXT:   "qualType": "void (int *, struct S, struct S *)"
4031 // CHECK-NEXT:  },
4032 // CHECK-NEXT:  "inner": [
4033 // CHECK-NEXT:   {
4034 // CHECK-NEXT:    "id": "0x{{.*}}",
4035 // CHECK-NEXT:    "kind": "ParmVarDecl",
4036 // CHECK-NEXT:    "loc": {
4037 // CHECK-NEXT:     "offset": 954,
4038 // CHECK-NEXT:     "line": 72,
4039 // CHECK-NEXT:     "col": 28,
4040 // CHECK-NEXT:     "tokLen": 1
4041 // CHECK-NEXT:    },
4042 // CHECK-NEXT:    "range": {
4043 // CHECK-NEXT:     "begin": {
4044 // CHECK-NEXT:      "offset": 949,
4045 // CHECK-NEXT:      "col": 23,
4046 // CHECK-NEXT:      "tokLen": 3
4047 // CHECK-NEXT:     },
4048 // CHECK-NEXT:     "end": {
4049 // CHECK-NEXT:      "offset": 954,
4050 // CHECK-NEXT:      "col": 28,
4051 // CHECK-NEXT:      "tokLen": 1
4052 // CHECK-NEXT:     }
4053 // CHECK-NEXT:    },
4054 // CHECK-NEXT:    "isUsed": true,
4055 // CHECK-NEXT:    "name": "a",
4056 // CHECK-NEXT:    "mangledName": "a",
4057 // CHECK-NEXT:    "type": {
4058 // CHECK-NEXT:     "qualType": "int *"
4059 // CHECK-NEXT:    }
4060 // CHECK-NEXT:   },
4061 // CHECK-NEXT:   {
4062 // CHECK-NEXT:    "id": "0x{{.*}}",
4063 // CHECK-NEXT:    "kind": "ParmVarDecl",
4064 // CHECK-NEXT:    "loc": {
4065 // CHECK-NEXT:     "offset": 966,
4066 // CHECK-NEXT:     "col": 40,
4067 // CHECK-NEXT:     "tokLen": 1
4068 // CHECK-NEXT:    },
4069 // CHECK-NEXT:    "range": {
4070 // CHECK-NEXT:     "begin": {
4071 // CHECK-NEXT:      "offset": 957,
4072 // CHECK-NEXT:      "col": 31,
4073 // CHECK-NEXT:      "tokLen": 6
4074 // CHECK-NEXT:     },
4075 // CHECK-NEXT:     "end": {
4076 // CHECK-NEXT:      "offset": 966,
4077 // CHECK-NEXT:      "col": 40,
4078 // CHECK-NEXT:      "tokLen": 1
4079 // CHECK-NEXT:     }
4080 // CHECK-NEXT:    },
4081 // CHECK-NEXT:    "isUsed": true,
4082 // CHECK-NEXT:    "name": "b",
4083 // CHECK-NEXT:    "mangledName": "b",
4084 // CHECK-NEXT:    "type": {
4085 // CHECK-NEXT:     "desugaredQualType": "struct S",
4086 // CHECK-NEXT:     "qualType": "struct S"
4087 // CHECK-NEXT:    }
4088 // CHECK-NEXT:   },
4089 // CHECK-NEXT:   {
4090 // CHECK-NEXT:    "id": "0x{{.*}}",
4091 // CHECK-NEXT:    "kind": "ParmVarDecl",
4092 // CHECK-NEXT:    "loc": {
4093 // CHECK-NEXT:     "offset": 979,
4094 // CHECK-NEXT:     "col": 53,
4095 // CHECK-NEXT:     "tokLen": 1
4096 // CHECK-NEXT:    },
4097 // CHECK-NEXT:    "range": {
4098 // CHECK-NEXT:     "begin": {
4099 // CHECK-NEXT:      "offset": 969,
4100 // CHECK-NEXT:      "col": 43,
4101 // CHECK-NEXT:      "tokLen": 6
4102 // CHECK-NEXT:     },
4103 // CHECK-NEXT:     "end": {
4104 // CHECK-NEXT:      "offset": 979,
4105 // CHECK-NEXT:      "col": 53,
4106 // CHECK-NEXT:      "tokLen": 1
4107 // CHECK-NEXT:     }
4108 // CHECK-NEXT:    },
4109 // CHECK-NEXT:    "isUsed": true,
4110 // CHECK-NEXT:    "name": "c",
4111 // CHECK-NEXT:    "mangledName": "c",
4112 // CHECK-NEXT:    "type": {
4113 // CHECK-NEXT:     "qualType": "struct S *"
4114 // CHECK-NEXT:    }
4115 // CHECK-NEXT:   },
4116 // CHECK-NEXT:   {
4117 // CHECK-NEXT:    "id": "0x{{.*}}",
4118 // CHECK-NEXT:    "kind": "CompoundStmt",
4119 // CHECK-NEXT:    "range": {
4120 // CHECK-NEXT:     "begin": {
4121 // CHECK-NEXT:      "offset": 982,
4122 // CHECK-NEXT:      "col": 56,
4123 // CHECK-NEXT:      "tokLen": 1
4124 // CHECK-NEXT:     },
4125 // CHECK-NEXT:     "end": {
4126 // CHECK-NEXT:      "offset": 1136,
4127 // CHECK-NEXT:      "line": 83,
4128 // CHECK-NEXT:      "col": 1,
4129 // CHECK-NEXT:      "tokLen": 1
4130 // CHECK-NEXT:     }
4131 // CHECK-NEXT:    },
4132 // CHECK-NEXT:    "inner": [
4133 // CHECK-NEXT:     {
4134 // CHECK-NEXT:      "id": "0x{{.*}}",
4135 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
4136 // CHECK-NEXT:      "range": {
4137 // CHECK-NEXT:       "begin": {
4138 // CHECK-NEXT:        "offset": 987,
4139 // CHECK-NEXT:        "line": 73,
4140 // CHECK-NEXT:        "col": 3,
4141 // CHECK-NEXT:        "tokLen": 1
4142 // CHECK-NEXT:       },
4143 // CHECK-NEXT:       "end": {
4144 // CHECK-NEXT:        "offset": 990,
4145 // CHECK-NEXT:        "col": 6,
4146 // CHECK-NEXT:        "tokLen": 1
4147 // CHECK-NEXT:       }
4148 // CHECK-NEXT:      },
4149 // CHECK-NEXT:      "type": {
4150 // CHECK-NEXT:       "qualType": "int"
4151 // CHECK-NEXT:      },
4152 // CHECK-NEXT:      "valueCategory": "rvalue",
4153 // CHECK-NEXT:      "castKind": "LValueToRValue",
4154 // CHECK-NEXT:      "inner": [
4155 // CHECK-NEXT:       {
4156 // CHECK-NEXT:        "id": "0x{{.*}}",
4157 // CHECK-NEXT:        "kind": "ArraySubscriptExpr",
4158 // CHECK-NEXT:        "range": {
4159 // CHECK-NEXT:         "begin": {
4160 // CHECK-NEXT:          "offset": 987,
4161 // CHECK-NEXT:          "col": 3,
4162 // CHECK-NEXT:          "tokLen": 1
4163 // CHECK-NEXT:         },
4164 // CHECK-NEXT:         "end": {
4165 // CHECK-NEXT:          "offset": 990,
4166 // CHECK-NEXT:          "col": 6,
4167 // CHECK-NEXT:          "tokLen": 1
4168 // CHECK-NEXT:         }
4169 // CHECK-NEXT:        },
4170 // CHECK-NEXT:        "type": {
4171 // CHECK-NEXT:         "qualType": "int"
4172 // CHECK-NEXT:        },
4173 // CHECK-NEXT:        "valueCategory": "lvalue",
4174 // CHECK-NEXT:        "inner": [
4175 // CHECK-NEXT:         {
4176 // CHECK-NEXT:          "id": "0x{{.*}}",
4177 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
4178 // CHECK-NEXT:          "range": {
4179 // CHECK-NEXT:           "begin": {
4180 // CHECK-NEXT:            "offset": 987,
4181 // CHECK-NEXT:            "col": 3,
4182 // CHECK-NEXT:            "tokLen": 1
4183 // CHECK-NEXT:           },
4184 // CHECK-NEXT:           "end": {
4185 // CHECK-NEXT:            "offset": 987,
4186 // CHECK-NEXT:            "col": 3,
4187 // CHECK-NEXT:            "tokLen": 1
4188 // CHECK-NEXT:           }
4189 // CHECK-NEXT:          },
4190 // CHECK-NEXT:          "type": {
4191 // CHECK-NEXT:           "qualType": "int *"
4192 // CHECK-NEXT:          },
4193 // CHECK-NEXT:          "valueCategory": "rvalue",
4194 // CHECK-NEXT:          "castKind": "LValueToRValue",
4195 // CHECK-NEXT:          "inner": [
4196 // CHECK-NEXT:           {
4197 // CHECK-NEXT:            "id": "0x{{.*}}",
4198 // CHECK-NEXT:            "kind": "DeclRefExpr",
4199 // CHECK-NEXT:            "range": {
4200 // CHECK-NEXT:             "begin": {
4201 // CHECK-NEXT:              "offset": 987,
4202 // CHECK-NEXT:              "col": 3,
4203 // CHECK-NEXT:              "tokLen": 1
4204 // CHECK-NEXT:             },
4205 // CHECK-NEXT:             "end": {
4206 // CHECK-NEXT:              "offset": 987,
4207 // CHECK-NEXT:              "col": 3,
4208 // CHECK-NEXT:              "tokLen": 1
4209 // CHECK-NEXT:             }
4210 // CHECK-NEXT:            },
4211 // CHECK-NEXT:            "type": {
4212 // CHECK-NEXT:             "qualType": "int *"
4213 // CHECK-NEXT:            },
4214 // CHECK-NEXT:            "valueCategory": "lvalue",
4215 // CHECK-NEXT:            "referencedDecl": {
4216 // CHECK-NEXT:             "id": "0x{{.*}}",
4217 // CHECK-NEXT:             "kind": "ParmVarDecl",
4218 // CHECK-NEXT:             "name": "a",
4219 // CHECK-NEXT:             "type": {
4220 // CHECK-NEXT:              "qualType": "int *"
4221 // CHECK-NEXT:             }
4222 // CHECK-NEXT:            }
4223 // CHECK-NEXT:           }
4224 // CHECK-NEXT:          ]
4225 // CHECK-NEXT:         },
4226 // CHECK-NEXT:         {
4227 // CHECK-NEXT:          "id": "0x{{.*}}",
4228 // CHECK-NEXT:          "kind": "IntegerLiteral",
4229 // CHECK-NEXT:          "range": {
4230 // CHECK-NEXT:           "begin": {
4231 // CHECK-NEXT:            "offset": 989,
4232 // CHECK-NEXT:            "col": 5,
4233 // CHECK-NEXT:            "tokLen": 1
4234 // CHECK-NEXT:           },
4235 // CHECK-NEXT:           "end": {
4236 // CHECK-NEXT:            "offset": 989,
4237 // CHECK-NEXT:            "col": 5,
4238 // CHECK-NEXT:            "tokLen": 1
4239 // CHECK-NEXT:           }
4240 // CHECK-NEXT:          },
4241 // CHECK-NEXT:          "type": {
4242 // CHECK-NEXT:           "qualType": "int"
4243 // CHECK-NEXT:          },
4244 // CHECK-NEXT:          "valueCategory": "rvalue",
4245 // CHECK-NEXT:          "value": "0"
4246 // CHECK-NEXT:         }
4247 // CHECK-NEXT:        ]
4248 // CHECK-NEXT:       }
4249 // CHECK-NEXT:      ]
4250 // CHECK-NEXT:     },
4251 // CHECK-NEXT:     {
4252 // CHECK-NEXT:      "id": "0x{{.*}}",
4253 // CHECK-NEXT:      "kind": "CallExpr",
4254 // CHECK-NEXT:      "range": {
4255 // CHECK-NEXT:       "begin": {
4256 // CHECK-NEXT:        "offset": 996,
4257 // CHECK-NEXT:        "line": 74,
4258 // CHECK-NEXT:        "col": 3,
4259 // CHECK-NEXT:        "tokLen": 14
4260 // CHECK-NEXT:       },
4261 // CHECK-NEXT:       "end": {
4262 // CHECK-NEXT:        "offset": 1016,
4263 // CHECK-NEXT:        "col": 23,
4264 // CHECK-NEXT:        "tokLen": 1
4265 // CHECK-NEXT:       }
4266 // CHECK-NEXT:      },
4267 // CHECK-NEXT:      "type": {
4268 // CHECK-NEXT:       "qualType": "void"
4269 // CHECK-NEXT:      },
4270 // CHECK-NEXT:      "valueCategory": "rvalue",
4271 // CHECK-NEXT:      "inner": [
4272 // CHECK-NEXT:       {
4273 // CHECK-NEXT:        "id": "0x{{.*}}",
4274 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
4275 // CHECK-NEXT:        "range": {
4276 // CHECK-NEXT:         "begin": {
4277 // CHECK-NEXT:          "offset": 996,
4278 // CHECK-NEXT:          "col": 3,
4279 // CHECK-NEXT:          "tokLen": 14
4280 // CHECK-NEXT:         },
4281 // CHECK-NEXT:         "end": {
4282 // CHECK-NEXT:          "offset": 996,
4283 // CHECK-NEXT:          "col": 3,
4284 // CHECK-NEXT:          "tokLen": 14
4285 // CHECK-NEXT:         }
4286 // CHECK-NEXT:        },
4287 // CHECK-NEXT:        "type": {
4288 // CHECK-NEXT:         "qualType": "void (*)(int, int *)"
4289 // CHECK-NEXT:        },
4290 // CHECK-NEXT:        "valueCategory": "rvalue",
4291 // CHECK-NEXT:        "castKind": "FunctionToPointerDecay",
4292 // CHECK-NEXT:        "inner": [
4293 // CHECK-NEXT:         {
4294 // CHECK-NEXT:          "id": "0x{{.*}}",
4295 // CHECK-NEXT:          "kind": "DeclRefExpr",
4296 // CHECK-NEXT:          "range": {
4297 // CHECK-NEXT:           "begin": {
4298 // CHECK-NEXT:            "offset": 996,
4299 // CHECK-NEXT:            "col": 3,
4300 // CHECK-NEXT:            "tokLen": 14
4301 // CHECK-NEXT:           },
4302 // CHECK-NEXT:           "end": {
4303 // CHECK-NEXT:            "offset": 996,
4304 // CHECK-NEXT:            "col": 3,
4305 // CHECK-NEXT:            "tokLen": 14
4306 // CHECK-NEXT:           }
4307 // CHECK-NEXT:          },
4308 // CHECK-NEXT:          "type": {
4309 // CHECK-NEXT:           "qualType": "void (int, int *)"
4310 // CHECK-NEXT:          },
4311 // CHECK-NEXT:          "valueCategory": "rvalue",
4312 // CHECK-NEXT:          "referencedDecl": {
4313 // CHECK-NEXT:           "id": "0x{{.*}}",
4314 // CHECK-NEXT:           "kind": "FunctionDecl",
4315 // CHECK-NEXT:           "name": "UnaryOperators",
4316 // CHECK-NEXT:           "type": {
4317 // CHECK-NEXT:            "qualType": "void (int, int *)"
4318 // CHECK-NEXT:           }
4319 // CHECK-NEXT:          }
4320 // CHECK-NEXT:         }
4321 // CHECK-NEXT:        ]
4322 // CHECK-NEXT:       },
4323 // CHECK-NEXT:       {
4324 // CHECK-NEXT:        "id": "0x{{.*}}",
4325 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
4326 // CHECK-NEXT:        "range": {
4327 // CHECK-NEXT:         "begin": {
4328 // CHECK-NEXT:          "offset": 1011,
4329 // CHECK-NEXT:          "col": 18,
4330 // CHECK-NEXT:          "tokLen": 1
4331 // CHECK-NEXT:         },
4332 // CHECK-NEXT:         "end": {
4333 // CHECK-NEXT:          "offset": 1012,
4334 // CHECK-NEXT:          "col": 19,
4335 // CHECK-NEXT:          "tokLen": 1
4336 // CHECK-NEXT:         }
4337 // CHECK-NEXT:        },
4338 // CHECK-NEXT:        "type": {
4339 // CHECK-NEXT:         "qualType": "int"
4340 // CHECK-NEXT:        },
4341 // CHECK-NEXT:        "valueCategory": "rvalue",
4342 // CHECK-NEXT:        "castKind": "LValueToRValue",
4343 // CHECK-NEXT:        "inner": [
4344 // CHECK-NEXT:         {
4345 // CHECK-NEXT:          "id": "0x{{.*}}",
4346 // CHECK-NEXT:          "kind": "UnaryOperator",
4347 // CHECK-NEXT:          "range": {
4348 // CHECK-NEXT:           "begin": {
4349 // CHECK-NEXT:            "offset": 1011,
4350 // CHECK-NEXT:            "col": 18,
4351 // CHECK-NEXT:            "tokLen": 1
4352 // CHECK-NEXT:           },
4353 // CHECK-NEXT:           "end": {
4354 // CHECK-NEXT:            "offset": 1012,
4355 // CHECK-NEXT:            "col": 19,
4356 // CHECK-NEXT:            "tokLen": 1
4357 // CHECK-NEXT:           }
4358 // CHECK-NEXT:          },
4359 // CHECK-NEXT:          "type": {
4360 // CHECK-NEXT:           "qualType": "int"
4361 // CHECK-NEXT:          },
4362 // CHECK-NEXT:          "valueCategory": "lvalue",
4363 // CHECK-NEXT:          "isPostfix": false,
4364 // CHECK-NEXT:          "opcode": "*",
4365 // CHECK-NEXT:          "canOverflow": false,
4366 // CHECK-NEXT:          "inner": [
4367 // CHECK-NEXT:           {
4368 // CHECK-NEXT:            "id": "0x{{.*}}",
4369 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
4370 // CHECK-NEXT:            "range": {
4371 // CHECK-NEXT:             "begin": {
4372 // CHECK-NEXT:              "offset": 1012,
4373 // CHECK-NEXT:              "col": 19,
4374 // CHECK-NEXT:              "tokLen": 1
4375 // CHECK-NEXT:             },
4376 // CHECK-NEXT:             "end": {
4377 // CHECK-NEXT:              "offset": 1012,
4378 // CHECK-NEXT:              "col": 19,
4379 // CHECK-NEXT:              "tokLen": 1
4380 // CHECK-NEXT:             }
4381 // CHECK-NEXT:            },
4382 // CHECK-NEXT:            "type": {
4383 // CHECK-NEXT:             "qualType": "int *"
4384 // CHECK-NEXT:            },
4385 // CHECK-NEXT:            "valueCategory": "rvalue",
4386 // CHECK-NEXT:            "castKind": "LValueToRValue",
4387 // CHECK-NEXT:            "inner": [
4388 // CHECK-NEXT:             {
4389 // CHECK-NEXT:              "id": "0x{{.*}}",
4390 // CHECK-NEXT:              "kind": "DeclRefExpr",
4391 // CHECK-NEXT:              "range": {
4392 // CHECK-NEXT:               "begin": {
4393 // CHECK-NEXT:                "offset": 1012,
4394 // CHECK-NEXT:                "col": 19,
4395 // CHECK-NEXT:                "tokLen": 1
4396 // CHECK-NEXT:               },
4397 // CHECK-NEXT:               "end": {
4398 // CHECK-NEXT:                "offset": 1012,
4399 // CHECK-NEXT:                "col": 19,
4400 // CHECK-NEXT:                "tokLen": 1
4401 // CHECK-NEXT:               }
4402 // CHECK-NEXT:              },
4403 // CHECK-NEXT:              "type": {
4404 // CHECK-NEXT:               "qualType": "int *"
4405 // CHECK-NEXT:              },
4406 // CHECK-NEXT:              "valueCategory": "lvalue",
4407 // CHECK-NEXT:              "referencedDecl": {
4408 // CHECK-NEXT:               "id": "0x{{.*}}",
4409 // CHECK-NEXT:               "kind": "ParmVarDecl",
4410 // CHECK-NEXT:               "name": "a",
4411 // CHECK-NEXT:               "type": {
4412 // CHECK-NEXT:                "qualType": "int *"
4413 // CHECK-NEXT:               }
4414 // CHECK-NEXT:              }
4415 // CHECK-NEXT:             }
4416 // CHECK-NEXT:            ]
4417 // CHECK-NEXT:           }
4418 // CHECK-NEXT:          ]
4419 // CHECK-NEXT:         }
4420 // CHECK-NEXT:        ]
4421 // CHECK-NEXT:       },
4422 // CHECK-NEXT:       {
4423 // CHECK-NEXT:        "id": "0x{{.*}}",
4424 // CHECK-NEXT:        "kind": "ImplicitCastExpr",
4425 // CHECK-NEXT:        "range": {
4426 // CHECK-NEXT:         "begin": {
4427 // CHECK-NEXT:          "offset": 1015,
4428 // CHECK-NEXT:          "col": 22,
4429 // CHECK-NEXT:          "tokLen": 1
4430 // CHECK-NEXT:         },
4431 // CHECK-NEXT:         "end": {
4432 // CHECK-NEXT:          "offset": 1015,
4433 // CHECK-NEXT:          "col": 22,
4434 // CHECK-NEXT:          "tokLen": 1
4435 // CHECK-NEXT:         }
4436 // CHECK-NEXT:        },
4437 // CHECK-NEXT:        "type": {
4438 // CHECK-NEXT:         "qualType": "int *"
4439 // CHECK-NEXT:        },
4440 // CHECK-NEXT:        "valueCategory": "rvalue",
4441 // CHECK-NEXT:        "castKind": "LValueToRValue",
4442 // CHECK-NEXT:        "inner": [
4443 // CHECK-NEXT:         {
4444 // CHECK-NEXT:          "id": "0x{{.*}}",
4445 // CHECK-NEXT:          "kind": "DeclRefExpr",
4446 // CHECK-NEXT:          "range": {
4447 // CHECK-NEXT:           "begin": {
4448 // CHECK-NEXT:            "offset": 1015,
4449 // CHECK-NEXT:            "col": 22,
4450 // CHECK-NEXT:            "tokLen": 1
4451 // CHECK-NEXT:           },
4452 // CHECK-NEXT:           "end": {
4453 // CHECK-NEXT:            "offset": 1015,
4454 // CHECK-NEXT:            "col": 22,
4455 // CHECK-NEXT:            "tokLen": 1
4456 // CHECK-NEXT:           }
4457 // CHECK-NEXT:          },
4458 // CHECK-NEXT:          "type": {
4459 // CHECK-NEXT:           "qualType": "int *"
4460 // CHECK-NEXT:          },
4461 // CHECK-NEXT:          "valueCategory": "lvalue",
4462 // CHECK-NEXT:          "referencedDecl": {
4463 // CHECK-NEXT:           "id": "0x{{.*}}",
4464 // CHECK-NEXT:           "kind": "ParmVarDecl",
4465 // CHECK-NEXT:           "name": "a",
4466 // CHECK-NEXT:           "type": {
4467 // CHECK-NEXT:            "qualType": "int *"
4468 // CHECK-NEXT:           }
4469 // CHECK-NEXT:          }
4470 // CHECK-NEXT:         }
4471 // CHECK-NEXT:        ]
4472 // CHECK-NEXT:       }
4473 // CHECK-NEXT:      ]
4474 // CHECK-NEXT:     },
4475 // CHECK-NEXT:     {
4476 // CHECK-NEXT:      "id": "0x{{.*}}",
4477 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
4478 // CHECK-NEXT:      "range": {
4479 // CHECK-NEXT:       "begin": {
4480 // CHECK-NEXT:        "offset": 1024,
4481 // CHECK-NEXT:        "line": 76,
4482 // CHECK-NEXT:        "col": 3,
4483 // CHECK-NEXT:        "tokLen": 1
4484 // CHECK-NEXT:       },
4485 // CHECK-NEXT:       "end": {
4486 // CHECK-NEXT:        "offset": 1026,
4487 // CHECK-NEXT:        "col": 5,
4488 // CHECK-NEXT:        "tokLen": 1
4489 // CHECK-NEXT:       }
4490 // CHECK-NEXT:      },
4491 // CHECK-NEXT:      "type": {
4492 // CHECK-NEXT:       "qualType": "int"
4493 // CHECK-NEXT:      },
4494 // CHECK-NEXT:      "valueCategory": "rvalue",
4495 // CHECK-NEXT:      "castKind": "LValueToRValue",
4496 // CHECK-NEXT:      "inner": [
4497 // CHECK-NEXT:       {
4498 // CHECK-NEXT:        "id": "0x{{.*}}",
4499 // CHECK-NEXT:        "kind": "MemberExpr",
4500 // CHECK-NEXT:        "range": {
4501 // CHECK-NEXT:         "begin": {
4502 // CHECK-NEXT:          "offset": 1024,
4503 // CHECK-NEXT:          "col": 3,
4504 // CHECK-NEXT:          "tokLen": 1
4505 // CHECK-NEXT:         },
4506 // CHECK-NEXT:         "end": {
4507 // CHECK-NEXT:          "offset": 1026,
4508 // CHECK-NEXT:          "col": 5,
4509 // CHECK-NEXT:          "tokLen": 1
4510 // CHECK-NEXT:         }
4511 // CHECK-NEXT:        },
4512 // CHECK-NEXT:        "type": {
4513 // CHECK-NEXT:         "qualType": "int"
4514 // CHECK-NEXT:        },
4515 // CHECK-NEXT:        "valueCategory": "lvalue",
4516 // CHECK-NEXT:        "name": "a",
4517 // CHECK-NEXT:        "isArrow": false,
4518 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
4519 // CHECK-NEXT:        "inner": [
4520 // CHECK-NEXT:         {
4521 // CHECK-NEXT:          "id": "0x{{.*}}",
4522 // CHECK-NEXT:          "kind": "DeclRefExpr",
4523 // CHECK-NEXT:          "range": {
4524 // CHECK-NEXT:           "begin": {
4525 // CHECK-NEXT:            "offset": 1024,
4526 // CHECK-NEXT:            "col": 3,
4527 // CHECK-NEXT:            "tokLen": 1
4528 // CHECK-NEXT:           },
4529 // CHECK-NEXT:           "end": {
4530 // CHECK-NEXT:            "offset": 1024,
4531 // CHECK-NEXT:            "col": 3,
4532 // CHECK-NEXT:            "tokLen": 1
4533 // CHECK-NEXT:           }
4534 // CHECK-NEXT:          },
4535 // CHECK-NEXT:          "type": {
4536 // CHECK-NEXT:           "desugaredQualType": "struct S",
4537 // CHECK-NEXT:           "qualType": "struct S"
4538 // CHECK-NEXT:          },
4539 // CHECK-NEXT:          "valueCategory": "lvalue",
4540 // CHECK-NEXT:          "referencedDecl": {
4541 // CHECK-NEXT:           "id": "0x{{.*}}",
4542 // CHECK-NEXT:           "kind": "ParmVarDecl",
4543 // CHECK-NEXT:           "name": "b",
4544 // CHECK-NEXT:           "type": {
4545 // CHECK-NEXT:            "desugaredQualType": "struct S",
4546 // CHECK-NEXT:            "qualType": "struct S"
4547 // CHECK-NEXT:           }
4548 // CHECK-NEXT:          }
4549 // CHECK-NEXT:         }
4550 // CHECK-NEXT:        ]
4551 // CHECK-NEXT:       }
4552 // CHECK-NEXT:      ]
4553 // CHECK-NEXT:     },
4554 // CHECK-NEXT:     {
4555 // CHECK-NEXT:      "id": "0x{{.*}}",
4556 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
4557 // CHECK-NEXT:      "range": {
4558 // CHECK-NEXT:       "begin": {
4559 // CHECK-NEXT:        "offset": 1032,
4560 // CHECK-NEXT:        "line": 77,
4561 // CHECK-NEXT:        "col": 3,
4562 // CHECK-NEXT:        "tokLen": 1
4563 // CHECK-NEXT:       },
4564 // CHECK-NEXT:       "end": {
4565 // CHECK-NEXT:        "offset": 1035,
4566 // CHECK-NEXT:        "col": 6,
4567 // CHECK-NEXT:        "tokLen": 1
4568 // CHECK-NEXT:       }
4569 // CHECK-NEXT:      },
4570 // CHECK-NEXT:      "type": {
4571 // CHECK-NEXT:       "qualType": "int"
4572 // CHECK-NEXT:      },
4573 // CHECK-NEXT:      "valueCategory": "rvalue",
4574 // CHECK-NEXT:      "castKind": "LValueToRValue",
4575 // CHECK-NEXT:      "inner": [
4576 // CHECK-NEXT:       {
4577 // CHECK-NEXT:        "id": "0x{{.*}}",
4578 // CHECK-NEXT:        "kind": "MemberExpr",
4579 // CHECK-NEXT:        "range": {
4580 // CHECK-NEXT:         "begin": {
4581 // CHECK-NEXT:          "offset": 1032,
4582 // CHECK-NEXT:          "col": 3,
4583 // CHECK-NEXT:          "tokLen": 1
4584 // CHECK-NEXT:         },
4585 // CHECK-NEXT:         "end": {
4586 // CHECK-NEXT:          "offset": 1035,
4587 // CHECK-NEXT:          "col": 6,
4588 // CHECK-NEXT:          "tokLen": 1
4589 // CHECK-NEXT:         }
4590 // CHECK-NEXT:        },
4591 // CHECK-NEXT:        "type": {
4592 // CHECK-NEXT:         "qualType": "int"
4593 // CHECK-NEXT:        },
4594 // CHECK-NEXT:        "valueCategory": "lvalue",
4595 // CHECK-NEXT:        "name": "a",
4596 // CHECK-NEXT:        "isArrow": true,
4597 // CHECK-NEXT:        "referencedMemberDecl": "0x{{.*}}",
4598 // CHECK-NEXT:        "inner": [
4599 // CHECK-NEXT:         {
4600 // CHECK-NEXT:          "id": "0x{{.*}}",
4601 // CHECK-NEXT:          "kind": "ImplicitCastExpr",
4602 // CHECK-NEXT:          "range": {
4603 // CHECK-NEXT:           "begin": {
4604 // CHECK-NEXT:            "offset": 1032,
4605 // CHECK-NEXT:            "col": 3,
4606 // CHECK-NEXT:            "tokLen": 1
4607 // CHECK-NEXT:           },
4608 // CHECK-NEXT:           "end": {
4609 // CHECK-NEXT:            "offset": 1032,
4610 // CHECK-NEXT:            "col": 3,
4611 // CHECK-NEXT:            "tokLen": 1
4612 // CHECK-NEXT:           }
4613 // CHECK-NEXT:          },
4614 // CHECK-NEXT:          "type": {
4615 // CHECK-NEXT:           "qualType": "struct S *"
4616 // CHECK-NEXT:          },
4617 // CHECK-NEXT:          "valueCategory": "rvalue",
4618 // CHECK-NEXT:          "castKind": "LValueToRValue",
4619 // CHECK-NEXT:          "inner": [
4620 // CHECK-NEXT:           {
4621 // CHECK-NEXT:            "id": "0x{{.*}}",
4622 // CHECK-NEXT:            "kind": "DeclRefExpr",
4623 // CHECK-NEXT:            "range": {
4624 // CHECK-NEXT:             "begin": {
4625 // CHECK-NEXT:              "offset": 1032,
4626 // CHECK-NEXT:              "col": 3,
4627 // CHECK-NEXT:              "tokLen": 1
4628 // CHECK-NEXT:             },
4629 // CHECK-NEXT:             "end": {
4630 // CHECK-NEXT:              "offset": 1032,
4631 // CHECK-NEXT:              "col": 3,
4632 // CHECK-NEXT:              "tokLen": 1
4633 // CHECK-NEXT:             }
4634 // CHECK-NEXT:            },
4635 // CHECK-NEXT:            "type": {
4636 // CHECK-NEXT:             "qualType": "struct S *"
4637 // CHECK-NEXT:            },
4638 // CHECK-NEXT:            "valueCategory": "lvalue",
4639 // CHECK-NEXT:            "referencedDecl": {
4640 // CHECK-NEXT:             "id": "0x{{.*}}",
4641 // CHECK-NEXT:             "kind": "ParmVarDecl",
4642 // CHECK-NEXT:             "name": "c",
4643 // CHECK-NEXT:             "type": {
4644 // CHECK-NEXT:              "qualType": "struct S *"
4645 // CHECK-NEXT:             }
4646 // CHECK-NEXT:            }
4647 // CHECK-NEXT:           }
4648 // CHECK-NEXT:          ]
4649 // CHECK-NEXT:         }
4650 // CHECK-NEXT:        ]
4651 // CHECK-NEXT:       }
4652 // CHECK-NEXT:      ]
4653 // CHECK-NEXT:     },
4654 // CHECK-NEXT:     {
4655 // CHECK-NEXT:      "id": "0x{{.*}}",
4656 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
4657 // CHECK-NEXT:      "range": {
4658 // CHECK-NEXT:       "begin": {
4659 // CHECK-NEXT:        "offset": 1092,
4660 // CHECK-NEXT:        "line": 81,
4661 // CHECK-NEXT:        "col": 3,
4662 // CHECK-NEXT:        "tokLen": 1
4663 // CHECK-NEXT:       },
4664 // CHECK-NEXT:       "end": {
4665 // CHECK-NEXT:        "offset": 1114,
4666 // CHECK-NEXT:        "col": 25,
4667 // CHECK-NEXT:        "tokLen": 1
4668 // CHECK-NEXT:       }
4669 // CHECK-NEXT:      },
4670 // CHECK-NEXT:      "type": {
4671 // CHECK-NEXT:       "qualType": "int *"
4672 // CHECK-NEXT:      },
4673 // CHECK-NEXT:      "valueCategory": "rvalue",
4674 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
4675 // CHECK-NEXT:      "inner": [
4676 // CHECK-NEXT:       {
4677 // CHECK-NEXT:        "id": "0x{{.*}}",
4678 // CHECK-NEXT:        "kind": "CompoundLiteralExpr",
4679 // CHECK-NEXT:        "range": {
4680 // CHECK-NEXT:         "begin": {
4681 // CHECK-NEXT:          "offset": 1092,
4682 // CHECK-NEXT:          "col": 3,
4683 // CHECK-NEXT:          "tokLen": 1
4684 // CHECK-NEXT:         },
4685 // CHECK-NEXT:         "end": {
4686 // CHECK-NEXT:          "offset": 1114,
4687 // CHECK-NEXT:          "col": 25,
4688 // CHECK-NEXT:          "tokLen": 1
4689 // CHECK-NEXT:         }
4690 // CHECK-NEXT:        },
4691 // CHECK-NEXT:        "type": {
4692 // CHECK-NEXT:         "qualType": "int [4]"
4693 // CHECK-NEXT:        },
4694 // CHECK-NEXT:        "valueCategory": "lvalue",
4695 // CHECK-NEXT:        "inner": [
4696 // CHECK-NEXT:         {
4697 // CHECK-NEXT:          "id": "0x{{.*}}",
4698 // CHECK-NEXT:          "kind": "InitListExpr",
4699 // CHECK-NEXT:          "range": {
4700 // CHECK-NEXT:           "begin": {
4701 // CHECK-NEXT:            "offset": 1101,
4702 // CHECK-NEXT:            "col": 12,
4703 // CHECK-NEXT:            "tokLen": 1
4704 // CHECK-NEXT:           },
4705 // CHECK-NEXT:           "end": {
4706 // CHECK-NEXT:            "offset": 1114,
4707 // CHECK-NEXT:            "col": 25,
4708 // CHECK-NEXT:            "tokLen": 1
4709 // CHECK-NEXT:           }
4710 // CHECK-NEXT:          },
4711 // CHECK-NEXT:          "type": {
4712 // CHECK-NEXT:           "qualType": "int [4]"
4713 // CHECK-NEXT:          },
4714 // CHECK-NEXT:          "valueCategory": "rvalue",
4715 // CHECK-NEXT:          "inner": [
4716 // CHECK-NEXT:           {
4717 // CHECK-NEXT:            "id": "0x{{.*}}",
4718 // CHECK-NEXT:            "kind": "IntegerLiteral",
4719 // CHECK-NEXT:            "range": {
4720 // CHECK-NEXT:             "begin": {
4721 // CHECK-NEXT:              "offset": 1102,
4722 // CHECK-NEXT:              "col": 13,
4723 // CHECK-NEXT:              "tokLen": 1
4724 // CHECK-NEXT:             },
4725 // CHECK-NEXT:             "end": {
4726 // CHECK-NEXT:              "offset": 1102,
4727 // CHECK-NEXT:              "col": 13,
4728 // CHECK-NEXT:              "tokLen": 1
4729 // CHECK-NEXT:             }
4730 // CHECK-NEXT:            },
4731 // CHECK-NEXT:            "type": {
4732 // CHECK-NEXT:             "qualType": "int"
4733 // CHECK-NEXT:            },
4734 // CHECK-NEXT:            "valueCategory": "rvalue",
4735 // CHECK-NEXT:            "value": "1"
4736 // CHECK-NEXT:           },
4737 // CHECK-NEXT:           {
4738 // CHECK-NEXT:            "id": "0x{{.*}}",
4739 // CHECK-NEXT:            "kind": "IntegerLiteral",
4740 // CHECK-NEXT:            "range": {
4741 // CHECK-NEXT:             "begin": {
4742 // CHECK-NEXT:              "offset": 1105,
4743 // CHECK-NEXT:              "col": 16,
4744 // CHECK-NEXT:              "tokLen": 1
4745 // CHECK-NEXT:             },
4746 // CHECK-NEXT:             "end": {
4747 // CHECK-NEXT:              "offset": 1105,
4748 // CHECK-NEXT:              "col": 16,
4749 // CHECK-NEXT:              "tokLen": 1
4750 // CHECK-NEXT:             }
4751 // CHECK-NEXT:            },
4752 // CHECK-NEXT:            "type": {
4753 // CHECK-NEXT:             "qualType": "int"
4754 // CHECK-NEXT:            },
4755 // CHECK-NEXT:            "valueCategory": "rvalue",
4756 // CHECK-NEXT:            "value": "2"
4757 // CHECK-NEXT:           },
4758 // CHECK-NEXT:           {
4759 // CHECK-NEXT:            "id": "0x{{.*}}",
4760 // CHECK-NEXT:            "kind": "IntegerLiteral",
4761 // CHECK-NEXT:            "range": {
4762 // CHECK-NEXT:             "begin": {
4763 // CHECK-NEXT:              "offset": 1108,
4764 // CHECK-NEXT:              "col": 19,
4765 // CHECK-NEXT:              "tokLen": 1
4766 // CHECK-NEXT:             },
4767 // CHECK-NEXT:             "end": {
4768 // CHECK-NEXT:              "offset": 1108,
4769 // CHECK-NEXT:              "col": 19,
4770 // CHECK-NEXT:              "tokLen": 1
4771 // CHECK-NEXT:             }
4772 // CHECK-NEXT:            },
4773 // CHECK-NEXT:            "type": {
4774 // CHECK-NEXT:             "qualType": "int"
4775 // CHECK-NEXT:            },
4776 // CHECK-NEXT:            "valueCategory": "rvalue",
4777 // CHECK-NEXT:            "value": "3"
4778 // CHECK-NEXT:           },
4779 // CHECK-NEXT:           {
4780 // CHECK-NEXT:            "id": "0x{{.*}}",
4781 // CHECK-NEXT:            "kind": "IntegerLiteral",
4782 // CHECK-NEXT:            "range": {
4783 // CHECK-NEXT:             "begin": {
4784 // CHECK-NEXT:              "offset": 1111,
4785 // CHECK-NEXT:              "col": 22,
4786 // CHECK-NEXT:              "tokLen": 1
4787 // CHECK-NEXT:             },
4788 // CHECK-NEXT:             "end": {
4789 // CHECK-NEXT:              "offset": 1111,
4790 // CHECK-NEXT:              "col": 22,
4791 // CHECK-NEXT:              "tokLen": 1
4792 // CHECK-NEXT:             }
4793 // CHECK-NEXT:            },
4794 // CHECK-NEXT:            "type": {
4795 // CHECK-NEXT:             "qualType": "int"
4796 // CHECK-NEXT:            },
4797 // CHECK-NEXT:            "valueCategory": "rvalue",
4798 // CHECK-NEXT:            "value": "4"
4799 // CHECK-NEXT:           }
4800 // CHECK-NEXT:          ]
4801 // CHECK-NEXT:         }
4802 // CHECK-NEXT:        ]
4803 // CHECK-NEXT:       }
4804 // CHECK-NEXT:      ]
4805 // CHECK-NEXT:     },
4806 // CHECK-NEXT:     {
4807 // CHECK-NEXT:      "id": "0x{{.*}}",
4808 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
4809 // CHECK-NEXT:      "range": {
4810 // CHECK-NEXT:       "begin": {
4811 // CHECK-NEXT:        "offset": 1120,
4812 // CHECK-NEXT:        "line": 82,
4813 // CHECK-NEXT:        "col": 3,
4814 // CHECK-NEXT:        "tokLen": 1
4815 // CHECK-NEXT:       },
4816 // CHECK-NEXT:       "end": {
4817 // CHECK-NEXT:        "offset": 1132,
4818 // CHECK-NEXT:        "col": 15,
4819 // CHECK-NEXT:        "tokLen": 1
4820 // CHECK-NEXT:       }
4821 // CHECK-NEXT:      },
4822 // CHECK-NEXT:      "type": {
4823 // CHECK-NEXT:       "desugaredQualType": "struct S",
4824 // CHECK-NEXT:       "qualType": "struct S"
4825 // CHECK-NEXT:      },
4826 // CHECK-NEXT:      "valueCategory": "rvalue",
4827 // CHECK-NEXT:      "castKind": "LValueToRValue",
4828 // CHECK-NEXT:      "inner": [
4829 // CHECK-NEXT:       {
4830 // CHECK-NEXT:        "id": "0x{{.*}}",
4831 // CHECK-NEXT:        "kind": "CompoundLiteralExpr",
4832 // CHECK-NEXT:        "range": {
4833 // CHECK-NEXT:         "begin": {
4834 // CHECK-NEXT:          "offset": 1120,
4835 // CHECK-NEXT:          "col": 3,
4836 // CHECK-NEXT:          "tokLen": 1
4837 // CHECK-NEXT:         },
4838 // CHECK-NEXT:         "end": {
4839 // CHECK-NEXT:          "offset": 1132,
4840 // CHECK-NEXT:          "col": 15,
4841 // CHECK-NEXT:          "tokLen": 1
4842 // CHECK-NEXT:         }
4843 // CHECK-NEXT:        },
4844 // CHECK-NEXT:        "type": {
4845 // CHECK-NEXT:         "desugaredQualType": "struct S",
4846 // CHECK-NEXT:         "qualType": "struct S"
4847 // CHECK-NEXT:        },
4848 // CHECK-NEXT:        "valueCategory": "lvalue",
4849 // CHECK-NEXT:        "inner": [
4850 // CHECK-NEXT:         {
4851 // CHECK-NEXT:          "id": "0x{{.*}}",
4852 // CHECK-NEXT:          "kind": "InitListExpr",
4853 // CHECK-NEXT:          "range": {
4854 // CHECK-NEXT:           "begin": {
4855 // CHECK-NEXT:            "offset": 1130,
4856 // CHECK-NEXT:            "col": 13,
4857 // CHECK-NEXT:            "tokLen": 1
4858 // CHECK-NEXT:           },
4859 // CHECK-NEXT:           "end": {
4860 // CHECK-NEXT:            "offset": 1132,
4861 // CHECK-NEXT:            "col": 15,
4862 // CHECK-NEXT:            "tokLen": 1
4863 // CHECK-NEXT:           }
4864 // CHECK-NEXT:          },
4865 // CHECK-NEXT:          "type": {
4866 // CHECK-NEXT:           "desugaredQualType": "struct S",
4867 // CHECK-NEXT:           "qualType": "struct S"
4868 // CHECK-NEXT:          },
4869 // CHECK-NEXT:          "valueCategory": "rvalue",
4870 // CHECK-NEXT:          "inner": [
4871 // CHECK-NEXT:           {
4872 // CHECK-NEXT:            "id": "0x{{.*}}",
4873 // CHECK-NEXT:            "kind": "IntegerLiteral",
4874 // CHECK-NEXT:            "range": {
4875 // CHECK-NEXT:             "begin": {
4876 // CHECK-NEXT:              "offset": 1131,
4877 // CHECK-NEXT:              "col": 14,
4878 // CHECK-NEXT:              "tokLen": 1
4879 // CHECK-NEXT:             },
4880 // CHECK-NEXT:             "end": {
4881 // CHECK-NEXT:              "offset": 1131,
4882 // CHECK-NEXT:              "col": 14,
4883 // CHECK-NEXT:              "tokLen": 1
4884 // CHECK-NEXT:             }
4885 // CHECK-NEXT:            },
4886 // CHECK-NEXT:            "type": {
4887 // CHECK-NEXT:             "qualType": "int"
4888 // CHECK-NEXT:            },
4889 // CHECK-NEXT:            "valueCategory": "rvalue",
4890 // CHECK-NEXT:            "value": "1"
4891 // CHECK-NEXT:           }
4892 // CHECK-NEXT:          ]
4893 // CHECK-NEXT:         }
4894 // CHECK-NEXT:        ]
4895 // CHECK-NEXT:       }
4896 // CHECK-NEXT:      ]
4897 // CHECK-NEXT:     }
4898 // CHECK-NEXT:    ]
4899 // CHECK-NEXT:   }
4900 // CHECK-NEXT:  ]
4901 // CHECK-NEXT: }
4902 
4903 
4904 // CHECK:  "kind": "FunctionDecl",
4905 // CHECK-NEXT:  "loc": {
4906 // CHECK-NEXT:   "offset": 1165,
4907 // CHECK-NEXT:   "line": 87,
4908 // CHECK-NEXT:   "col": 6,
4909 // CHECK-NEXT:   "tokLen": 18
4910 // CHECK-NEXT:  },
4911 // CHECK-NEXT:  "range": {
4912 // CHECK-NEXT:   "begin": {
4913 // CHECK-NEXT:    "offset": 1160,
4914 // CHECK-NEXT:    "col": 1,
4915 // CHECK-NEXT:    "tokLen": 4
4916 // CHECK-NEXT:   },
4917 // CHECK-NEXT:   "end": {
4918 // CHECK-NEXT:    "offset": 1360,
4919 // CHECK-NEXT:    "line": 107,
4920 // CHECK-NEXT:    "col": 1,
4921 // CHECK-NEXT:    "tokLen": 1
4922 // CHECK-NEXT:   }
4923 // CHECK-NEXT:  },
4924 // CHECK-NEXT:  "name": "PrimaryExpressions",
4925 // CHECK-NEXT:  "mangledName": "PrimaryExpressions",
4926 // CHECK-NEXT:  "type": {
4927 // CHECK-NEXT:   "qualType": "void (int)"
4928 // CHECK-NEXT:  },
4929 // CHECK-NEXT:  "inner": [
4930 // CHECK-NEXT:   {
4931 // CHECK-NEXT:    "id": "0x{{.*}}",
4932 // CHECK-NEXT:    "kind": "ParmVarDecl",
4933 // CHECK-NEXT:    "loc": {
4934 // CHECK-NEXT:     "offset": 1188,
4935 // CHECK-NEXT:     "line": 87,
4936 // CHECK-NEXT:     "col": 29,
4937 // CHECK-NEXT:     "tokLen": 1
4938 // CHECK-NEXT:    },
4939 // CHECK-NEXT:    "range": {
4940 // CHECK-NEXT:     "begin": {
4941 // CHECK-NEXT:      "offset": 1184,
4942 // CHECK-NEXT:      "col": 25,
4943 // CHECK-NEXT:      "tokLen": 3
4944 // CHECK-NEXT:     },
4945 // CHECK-NEXT:     "end": {
4946 // CHECK-NEXT:      "offset": 1188,
4947 // CHECK-NEXT:      "col": 29,
4948 // CHECK-NEXT:      "tokLen": 1
4949 // CHECK-NEXT:     }
4950 // CHECK-NEXT:    },
4951 // CHECK-NEXT:    "isUsed": true,
4952 // CHECK-NEXT:    "name": "a",
4953 // CHECK-NEXT:    "mangledName": "a",
4954 // CHECK-NEXT:    "type": {
4955 // CHECK-NEXT:     "qualType": "int"
4956 // CHECK-NEXT:    }
4957 // CHECK-NEXT:   },
4958 // CHECK-NEXT:   {
4959 // CHECK-NEXT:    "id": "0x{{.*}}",
4960 // CHECK-NEXT:    "kind": "CompoundStmt",
4961 // CHECK-NEXT:    "range": {
4962 // CHECK-NEXT:     "begin": {
4963 // CHECK-NEXT:      "offset": 1191,
4964 // CHECK-NEXT:      "col": 32,
4965 // CHECK-NEXT:      "tokLen": 1
4966 // CHECK-NEXT:     },
4967 // CHECK-NEXT:     "end": {
4968 // CHECK-NEXT:      "offset": 1360,
4969 // CHECK-NEXT:      "line": 107,
4970 // CHECK-NEXT:      "col": 1,
4971 // CHECK-NEXT:      "tokLen": 1
4972 // CHECK-NEXT:     }
4973 // CHECK-NEXT:    },
4974 // CHECK-NEXT:    "inner": [
4975 // CHECK-NEXT:     {
4976 // CHECK-NEXT:      "id": "0x{{.*}}",
4977 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
4978 // CHECK-NEXT:      "range": {
4979 // CHECK-NEXT:       "begin": {
4980 // CHECK-NEXT:        "offset": 1196,
4981 // CHECK-NEXT:        "line": 88,
4982 // CHECK-NEXT:        "col": 3,
4983 // CHECK-NEXT:        "tokLen": 1
4984 // CHECK-NEXT:       },
4985 // CHECK-NEXT:       "end": {
4986 // CHECK-NEXT:        "offset": 1196,
4987 // CHECK-NEXT:        "col": 3,
4988 // CHECK-NEXT:        "tokLen": 1
4989 // CHECK-NEXT:       }
4990 // CHECK-NEXT:      },
4991 // CHECK-NEXT:      "type": {
4992 // CHECK-NEXT:       "qualType": "int"
4993 // CHECK-NEXT:      },
4994 // CHECK-NEXT:      "valueCategory": "rvalue",
4995 // CHECK-NEXT:      "castKind": "LValueToRValue",
4996 // CHECK-NEXT:      "inner": [
4997 // CHECK-NEXT:       {
4998 // CHECK-NEXT:        "id": "0x{{.*}}",
4999 // CHECK-NEXT:        "kind": "DeclRefExpr",
5000 // CHECK-NEXT:        "range": {
5001 // CHECK-NEXT:         "begin": {
5002 // CHECK-NEXT:          "offset": 1196,
5003 // CHECK-NEXT:          "col": 3,
5004 // CHECK-NEXT:          "tokLen": 1
5005 // CHECK-NEXT:         },
5006 // CHECK-NEXT:         "end": {
5007 // CHECK-NEXT:          "offset": 1196,
5008 // CHECK-NEXT:          "col": 3,
5009 // CHECK-NEXT:          "tokLen": 1
5010 // CHECK-NEXT:         }
5011 // CHECK-NEXT:        },
5012 // CHECK-NEXT:        "type": {
5013 // CHECK-NEXT:         "qualType": "int"
5014 // CHECK-NEXT:        },
5015 // CHECK-NEXT:        "valueCategory": "lvalue",
5016 // CHECK-NEXT:        "referencedDecl": {
5017 // CHECK-NEXT:         "id": "0x{{.*}}",
5018 // CHECK-NEXT:         "kind": "ParmVarDecl",
5019 // CHECK-NEXT:         "name": "a",
5020 // CHECK-NEXT:         "type": {
5021 // CHECK-NEXT:          "qualType": "int"
5022 // CHECK-NEXT:         }
5023 // CHECK-NEXT:        }
5024 // CHECK-NEXT:       }
5025 // CHECK-NEXT:      ]
5026 // CHECK-NEXT:     },
5027 // CHECK-NEXT:     {
5028 // CHECK-NEXT:      "id": "0x{{.*}}",
5029 // CHECK-NEXT:      "kind": "CharacterLiteral",
5030 // CHECK-NEXT:      "range": {
5031 // CHECK-NEXT:       "begin": {
5032 // CHECK-NEXT:        "offset": 1202,
5033 // CHECK-NEXT:        "line": 89,
5034 // CHECK-NEXT:        "col": 3,
5035 // CHECK-NEXT:        "tokLen": 3
5036 // CHECK-NEXT:       },
5037 // CHECK-NEXT:       "end": {
5038 // CHECK-NEXT:        "offset": 1202,
5039 // CHECK-NEXT:        "col": 3,
5040 // CHECK-NEXT:        "tokLen": 3
5041 // CHECK-NEXT:       }
5042 // CHECK-NEXT:      },
5043 // CHECK-NEXT:      "type": {
5044 // CHECK-NEXT:       "qualType": "int"
5045 // CHECK-NEXT:      },
5046 // CHECK-NEXT:      "valueCategory": "rvalue",
5047 // CHECK-NEXT:      "value": 97
5048 // CHECK-NEXT:     },
5049 // CHECK-NEXT:     {
5050 // CHECK-NEXT:      "id": "0x{{.*}}",
5051 // CHECK-NEXT:      "kind": "CharacterLiteral",
5052 // CHECK-NEXT:      "range": {
5053 // CHECK-NEXT:       "begin": {
5054 // CHECK-NEXT:        "offset": 1210,
5055 // CHECK-NEXT:        "line": 90,
5056 // CHECK-NEXT:        "col": 3,
5057 // CHECK-NEXT:        "tokLen": 4
5058 // CHECK-NEXT:       },
5059 // CHECK-NEXT:       "end": {
5060 // CHECK-NEXT:        "offset": 1210,
5061 // CHECK-NEXT:        "col": 3,
5062 // CHECK-NEXT:        "tokLen": 4
5063 // CHECK-NEXT:       }
5064 // CHECK-NEXT:      },
5065 // CHECK-NEXT:      "type": {
5066 // CHECK-NEXT:       "qualType": "int"
5067 // CHECK-NEXT:      },
5068 // CHECK-NEXT:      "valueCategory": "rvalue",
5069 // CHECK-NEXT:      "value": 97
5070 // CHECK-NEXT:     },
5071 // CHECK-NEXT:     {
5072 // CHECK-NEXT:      "id": "0x{{.*}}",
5073 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
5074 // CHECK-NEXT:      "range": {
5075 // CHECK-NEXT:       "begin": {
5076 // CHECK-NEXT:        "offset": 1219,
5077 // CHECK-NEXT:        "line": 91,
5078 // CHECK-NEXT:        "col": 3,
5079 // CHECK-NEXT:        "tokLen": 3
5080 // CHECK-NEXT:       },
5081 // CHECK-NEXT:       "end": {
5082 // CHECK-NEXT:        "offset": 1219,
5083 // CHECK-NEXT:        "col": 3,
5084 // CHECK-NEXT:        "tokLen": 3
5085 // CHECK-NEXT:       }
5086 // CHECK-NEXT:      },
5087 // CHECK-NEXT:      "type": {
5088 // CHECK-NEXT:       "qualType": "char *"
5089 // CHECK-NEXT:      },
5090 // CHECK-NEXT:      "valueCategory": "rvalue",
5091 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
5092 // CHECK-NEXT:      "inner": [
5093 // CHECK-NEXT:       {
5094 // CHECK-NEXT:        "id": "0x{{.*}}",
5095 // CHECK-NEXT:        "kind": "StringLiteral",
5096 // CHECK-NEXT:        "range": {
5097 // CHECK-NEXT:         "begin": {
5098 // CHECK-NEXT:          "offset": 1219,
5099 // CHECK-NEXT:          "col": 3,
5100 // CHECK-NEXT:          "tokLen": 3
5101 // CHECK-NEXT:         },
5102 // CHECK-NEXT:         "end": {
5103 // CHECK-NEXT:          "offset": 1219,
5104 // CHECK-NEXT:          "col": 3,
5105 // CHECK-NEXT:          "tokLen": 3
5106 // CHECK-NEXT:         }
5107 // CHECK-NEXT:        },
5108 // CHECK-NEXT:        "type": {
5109 // CHECK-NEXT:         "qualType": "char [2]"
5110 // CHECK-NEXT:        },
5111 // CHECK-NEXT:        "valueCategory": "lvalue",
5112 // CHECK-NEXT:        "value": "\"a\""
5113 // CHECK-NEXT:       }
5114 // CHECK-NEXT:      ]
5115 // CHECK-NEXT:     },
5116 // CHECK-NEXT:     {
5117 // CHECK-NEXT:      "id": "0x{{.*}}",
5118 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
5119 // CHECK-NEXT:      "range": {
5120 // CHECK-NEXT:       "begin": {
5121 // CHECK-NEXT:        "offset": 1227,
5122 // CHECK-NEXT:        "line": 92,
5123 // CHECK-NEXT:        "col": 3,
5124 // CHECK-NEXT:        "tokLen": 4
5125 // CHECK-NEXT:       },
5126 // CHECK-NEXT:       "end": {
5127 // CHECK-NEXT:        "offset": 1227,
5128 // CHECK-NEXT:        "col": 3,
5129 // CHECK-NEXT:        "tokLen": 4
5130 // CHECK-NEXT:       }
5131 // CHECK-NEXT:      },
5132 // CHECK-NEXT:      "type": {
5133 // CHECK-NEXT:       "qualType": "int *"
5134 // CHECK-NEXT:      },
5135 // CHECK-NEXT:      "valueCategory": "rvalue",
5136 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
5137 // CHECK-NEXT:      "inner": [
5138 // CHECK-NEXT:       {
5139 // CHECK-NEXT:        "id": "0x{{.*}}",
5140 // CHECK-NEXT:        "kind": "StringLiteral",
5141 // CHECK-NEXT:        "range": {
5142 // CHECK-NEXT:         "begin": {
5143 // CHECK-NEXT:          "offset": 1227,
5144 // CHECK-NEXT:          "col": 3,
5145 // CHECK-NEXT:          "tokLen": 4
5146 // CHECK-NEXT:         },
5147 // CHECK-NEXT:         "end": {
5148 // CHECK-NEXT:          "offset": 1227,
5149 // CHECK-NEXT:          "col": 3,
5150 // CHECK-NEXT:          "tokLen": 4
5151 // CHECK-NEXT:         }
5152 // CHECK-NEXT:        },
5153 // CHECK-NEXT:        "type": {
5154 // CHECK-NEXT:         "qualType": "int [2]"
5155 // CHECK-NEXT:        },
5156 // CHECK-NEXT:        "valueCategory": "lvalue",
5157 // CHECK-NEXT:        "value": "L\"a\""
5158 // CHECK-NEXT:       }
5159 // CHECK-NEXT:      ]
5160 // CHECK-NEXT:     },
5161 // CHECK-NEXT:     {
5162 // CHECK-NEXT:      "id": "0x{{.*}}",
5163 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
5164 // CHECK-NEXT:      "range": {
5165 // CHECK-NEXT:       "begin": {
5166 // CHECK-NEXT:        "offset": 1236,
5167 // CHECK-NEXT:        "line": 93,
5168 // CHECK-NEXT:        "col": 3,
5169 // CHECK-NEXT:        "tokLen": 5
5170 // CHECK-NEXT:       },
5171 // CHECK-NEXT:       "end": {
5172 // CHECK-NEXT:        "offset": 1236,
5173 // CHECK-NEXT:        "col": 3,
5174 // CHECK-NEXT:        "tokLen": 5
5175 // CHECK-NEXT:       }
5176 // CHECK-NEXT:      },
5177 // CHECK-NEXT:      "type": {
5178 // CHECK-NEXT:       "qualType": "char *"
5179 // CHECK-NEXT:      },
5180 // CHECK-NEXT:      "valueCategory": "rvalue",
5181 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
5182 // CHECK-NEXT:      "inner": [
5183 // CHECK-NEXT:       {
5184 // CHECK-NEXT:        "id": "0x{{.*}}",
5185 // CHECK-NEXT:        "kind": "StringLiteral",
5186 // CHECK-NEXT:        "range": {
5187 // CHECK-NEXT:         "begin": {
5188 // CHECK-NEXT:          "offset": 1236,
5189 // CHECK-NEXT:          "col": 3,
5190 // CHECK-NEXT:          "tokLen": 5
5191 // CHECK-NEXT:         },
5192 // CHECK-NEXT:         "end": {
5193 // CHECK-NEXT:          "offset": 1236,
5194 // CHECK-NEXT:          "col": 3,
5195 // CHECK-NEXT:          "tokLen": 5
5196 // CHECK-NEXT:         }
5197 // CHECK-NEXT:        },
5198 // CHECK-NEXT:        "type": {
5199 // CHECK-NEXT:         "qualType": "char [2]"
5200 // CHECK-NEXT:        },
5201 // CHECK-NEXT:        "valueCategory": "lvalue",
5202 // CHECK-NEXT:        "value": "u8\"a\""
5203 // CHECK-NEXT:       }
5204 // CHECK-NEXT:      ]
5205 // CHECK-NEXT:     },
5206 // CHECK-NEXT:     {
5207 // CHECK-NEXT:      "id": "0x{{.*}}",
5208 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
5209 // CHECK-NEXT:      "range": {
5210 // CHECK-NEXT:       "begin": {
5211 // CHECK-NEXT:        "offset": 1246,
5212 // CHECK-NEXT:        "line": 94,
5213 // CHECK-NEXT:        "col": 3,
5214 // CHECK-NEXT:        "tokLen": 4
5215 // CHECK-NEXT:       },
5216 // CHECK-NEXT:       "end": {
5217 // CHECK-NEXT:        "offset": 1246,
5218 // CHECK-NEXT:        "col": 3,
5219 // CHECK-NEXT:        "tokLen": 4
5220 // CHECK-NEXT:       }
5221 // CHECK-NEXT:      },
5222 // CHECK-NEXT:      "type": {
5223 // CHECK-NEXT:       "qualType": "unsigned int *"
5224 // CHECK-NEXT:      },
5225 // CHECK-NEXT:      "valueCategory": "rvalue",
5226 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
5227 // CHECK-NEXT:      "inner": [
5228 // CHECK-NEXT:       {
5229 // CHECK-NEXT:        "id": "0x{{.*}}",
5230 // CHECK-NEXT:        "kind": "StringLiteral",
5231 // CHECK-NEXT:        "range": {
5232 // CHECK-NEXT:         "begin": {
5233 // CHECK-NEXT:          "offset": 1246,
5234 // CHECK-NEXT:          "col": 3,
5235 // CHECK-NEXT:          "tokLen": 4
5236 // CHECK-NEXT:         },
5237 // CHECK-NEXT:         "end": {
5238 // CHECK-NEXT:          "offset": 1246,
5239 // CHECK-NEXT:          "col": 3,
5240 // CHECK-NEXT:          "tokLen": 4
5241 // CHECK-NEXT:         }
5242 // CHECK-NEXT:        },
5243 // CHECK-NEXT:        "type": {
5244 // CHECK-NEXT:         "qualType": "unsigned int [2]"
5245 // CHECK-NEXT:        },
5246 // CHECK-NEXT:        "valueCategory": "lvalue",
5247 // CHECK-NEXT:        "value": "U\"a\""
5248 // CHECK-NEXT:       }
5249 // CHECK-NEXT:      ]
5250 // CHECK-NEXT:     },
5251 // CHECK-NEXT:     {
5252 // CHECK-NEXT:      "id": "0x{{.*}}",
5253 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
5254 // CHECK-NEXT:      "range": {
5255 // CHECK-NEXT:       "begin": {
5256 // CHECK-NEXT:        "offset": 1255,
5257 // CHECK-NEXT:        "line": 95,
5258 // CHECK-NEXT:        "col": 3,
5259 // CHECK-NEXT:        "tokLen": 4
5260 // CHECK-NEXT:       },
5261 // CHECK-NEXT:       "end": {
5262 // CHECK-NEXT:        "offset": 1255,
5263 // CHECK-NEXT:        "col": 3,
5264 // CHECK-NEXT:        "tokLen": 4
5265 // CHECK-NEXT:       }
5266 // CHECK-NEXT:      },
5267 // CHECK-NEXT:      "type": {
5268 // CHECK-NEXT:       "qualType": "unsigned short *"
5269 // CHECK-NEXT:      },
5270 // CHECK-NEXT:      "valueCategory": "rvalue",
5271 // CHECK-NEXT:      "castKind": "ArrayToPointerDecay",
5272 // CHECK-NEXT:      "inner": [
5273 // CHECK-NEXT:       {
5274 // CHECK-NEXT:        "id": "0x{{.*}}",
5275 // CHECK-NEXT:        "kind": "StringLiteral",
5276 // CHECK-NEXT:        "range": {
5277 // CHECK-NEXT:         "begin": {
5278 // CHECK-NEXT:          "offset": 1255,
5279 // CHECK-NEXT:          "col": 3,
5280 // CHECK-NEXT:          "tokLen": 4
5281 // CHECK-NEXT:         },
5282 // CHECK-NEXT:         "end": {
5283 // CHECK-NEXT:          "offset": 1255,
5284 // CHECK-NEXT:          "col": 3,
5285 // CHECK-NEXT:          "tokLen": 4
5286 // CHECK-NEXT:         }
5287 // CHECK-NEXT:        },
5288 // CHECK-NEXT:        "type": {
5289 // CHECK-NEXT:         "qualType": "unsigned short [2]"
5290 // CHECK-NEXT:        },
5291 // CHECK-NEXT:        "valueCategory": "lvalue",
5292 // CHECK-NEXT:        "value": "u\"a\""
5293 // CHECK-NEXT:       }
5294 // CHECK-NEXT:      ]
5295 // CHECK-NEXT:     },
5296 // CHECK-NEXT:     {
5297 // CHECK-NEXT:      "id": "0x{{.*}}",
5298 // CHECK-NEXT:      "kind": "IntegerLiteral",
5299 // CHECK-NEXT:      "range": {
5300 // CHECK-NEXT:       "begin": {
5301 // CHECK-NEXT:        "offset": 1266,
5302 // CHECK-NEXT:        "line": 97,
5303 // CHECK-NEXT:        "col": 3,
5304 // CHECK-NEXT:        "tokLen": 1
5305 // CHECK-NEXT:       },
5306 // CHECK-NEXT:       "end": {
5307 // CHECK-NEXT:        "offset": 1266,
5308 // CHECK-NEXT:        "col": 3,
5309 // CHECK-NEXT:        "tokLen": 1
5310 // CHECK-NEXT:       }
5311 // CHECK-NEXT:      },
5312 // CHECK-NEXT:      "type": {
5313 // CHECK-NEXT:       "qualType": "int"
5314 // CHECK-NEXT:      },
5315 // CHECK-NEXT:      "valueCategory": "rvalue",
5316 // CHECK-NEXT:      "value": "1"
5317 // CHECK-NEXT:     },
5318 // CHECK-NEXT:     {
5319 // CHECK-NEXT:      "id": "0x{{.*}}",
5320 // CHECK-NEXT:      "kind": "IntegerLiteral",
5321 // CHECK-NEXT:      "range": {
5322 // CHECK-NEXT:       "begin": {
5323 // CHECK-NEXT:        "offset": 1272,
5324 // CHECK-NEXT:        "line": 98,
5325 // CHECK-NEXT:        "col": 3,
5326 // CHECK-NEXT:        "tokLen": 2
5327 // CHECK-NEXT:       },
5328 // CHECK-NEXT:       "end": {
5329 // CHECK-NEXT:        "offset": 1272,
5330 // CHECK-NEXT:        "col": 3,
5331 // CHECK-NEXT:        "tokLen": 2
5332 // CHECK-NEXT:       }
5333 // CHECK-NEXT:      },
5334 // CHECK-NEXT:      "type": {
5335 // CHECK-NEXT:       "qualType": "unsigned int"
5336 // CHECK-NEXT:      },
5337 // CHECK-NEXT:      "valueCategory": "rvalue",
5338 // CHECK-NEXT:      "value": "1"
5339 // CHECK-NEXT:     },
5340 // CHECK-NEXT:     {
5341 // CHECK-NEXT:      "id": "0x{{.*}}",
5342 // CHECK-NEXT:      "kind": "IntegerLiteral",
5343 // CHECK-NEXT:      "range": {
5344 // CHECK-NEXT:       "begin": {
5345 // CHECK-NEXT:        "offset": 1279,
5346 // CHECK-NEXT:        "line": 99,
5347 // CHECK-NEXT:        "col": 3,
5348 // CHECK-NEXT:        "tokLen": 3
5349 // CHECK-NEXT:       },
5350 // CHECK-NEXT:       "end": {
5351 // CHECK-NEXT:        "offset": 1279,
5352 // CHECK-NEXT:        "col": 3,
5353 // CHECK-NEXT:        "tokLen": 3
5354 // CHECK-NEXT:       }
5355 // CHECK-NEXT:      },
5356 // CHECK-NEXT:      "type": {
5357 // CHECK-NEXT:       "qualType": "long long"
5358 // CHECK-NEXT:      },
5359 // CHECK-NEXT:      "valueCategory": "rvalue",
5360 // CHECK-NEXT:      "value": "1"
5361 // CHECK-NEXT:     },
5362 // CHECK-NEXT:     {
5363 // CHECK-NEXT:      "id": "0x{{.*}}",
5364 // CHECK-NEXT:      "kind": "FloatingLiteral",
5365 // CHECK-NEXT:      "range": {
5366 // CHECK-NEXT:       "begin": {
5367 // CHECK-NEXT:        "offset": 1287,
5368 // CHECK-NEXT:        "line": 100,
5369 // CHECK-NEXT:        "col": 3,
5370 // CHECK-NEXT:        "tokLen": 3
5371 // CHECK-NEXT:       },
5372 // CHECK-NEXT:       "end": {
5373 // CHECK-NEXT:        "offset": 1287,
5374 // CHECK-NEXT:        "col": 3,
5375 // CHECK-NEXT:        "tokLen": 3
5376 // CHECK-NEXT:       }
5377 // CHECK-NEXT:      },
5378 // CHECK-NEXT:      "type": {
5379 // CHECK-NEXT:       "qualType": "double"
5380 // CHECK-NEXT:      },
5381 // CHECK-NEXT:      "valueCategory": "rvalue",
5382 // CHECK-NEXT:      "value": "1"
5383 // CHECK-NEXT:     },
5384 // CHECK-NEXT:     {
5385 // CHECK-NEXT:      "id": "0x{{.*}}",
5386 // CHECK-NEXT:      "kind": "FloatingLiteral",
5387 // CHECK-NEXT:      "range": {
5388 // CHECK-NEXT:       "begin": {
5389 // CHECK-NEXT:        "offset": 1295,
5390 // CHECK-NEXT:        "line": 101,
5391 // CHECK-NEXT:        "col": 3,
5392 // CHECK-NEXT:        "tokLen": 4
5393 // CHECK-NEXT:       },
5394 // CHECK-NEXT:       "end": {
5395 // CHECK-NEXT:        "offset": 1295,
5396 // CHECK-NEXT:        "col": 3,
5397 // CHECK-NEXT:        "tokLen": 4
5398 // CHECK-NEXT:       }
5399 // CHECK-NEXT:      },
5400 // CHECK-NEXT:      "type": {
5401 // CHECK-NEXT:       "qualType": "float"
5402 // CHECK-NEXT:      },
5403 // CHECK-NEXT:      "valueCategory": "rvalue",
5404 // CHECK-NEXT:      "value": "1"
5405 // CHECK-NEXT:     },
5406 // CHECK-NEXT:     {
5407 // CHECK-NEXT:      "id": "0x{{.*}}",
5408 // CHECK-NEXT:      "kind": "FloatingLiteral",
5409 // CHECK-NEXT:      "range": {
5410 // CHECK-NEXT:       "begin": {
5411 // CHECK-NEXT:        "offset": 1304,
5412 // CHECK-NEXT:        "line": 102,
5413 // CHECK-NEXT:        "col": 3,
5414 // CHECK-NEXT:        "tokLen": 26
5415 // CHECK-NEXT:       },
5416 // CHECK-NEXT:       "end": {
5417 // CHECK-NEXT:        "offset": 1304,
5418 // CHECK-NEXT:        "col": 3,
5419 // CHECK-NEXT:        "tokLen": 26
5420 // CHECK-NEXT:       }
5421 // CHECK-NEXT:      },
5422 // CHECK-NEXT:      "type": {
5423 // CHECK-NEXT:       "qualType": "float"
5424 // CHECK-NEXT:      },
5425 // CHECK-NEXT:      "valueCategory": "rvalue",
5426 // CHECK-NEXT:      "value": "+Inf"
5427 // CHECK-NEXT:     },
5428 // CHECK-NEXT:     {
5429 // CHECK-NEXT:      "id": "0x{{.*}}",
5430 // CHECK-NEXT:      "kind": "FloatingLiteral",
5431 // CHECK-NEXT:      "range": {
5432 // CHECK-NEXT:       "begin": {
5433 // CHECK-NEXT:        "offset": 1335,
5434 // CHECK-NEXT:        "line": 103,
5435 // CHECK-NEXT:        "col": 3,
5436 // CHECK-NEXT:        "tokLen": 4
5437 // CHECK-NEXT:       },
5438 // CHECK-NEXT:       "end": {
5439 // CHECK-NEXT:        "offset": 1335,
5440 // CHECK-NEXT:        "col": 3,
5441 // CHECK-NEXT:        "tokLen": 4
5442 // CHECK-NEXT:       }
5443 // CHECK-NEXT:      },
5444 // CHECK-NEXT:      "type": {
5445 // CHECK-NEXT:       "qualType": "long double"
5446 // CHECK-NEXT:      },
5447 // CHECK-NEXT:      "valueCategory": "rvalue",
5448 // CHECK-NEXT:      "value": "1"
5449 // CHECK-NEXT:     },
5450 // CHECK-NEXT:     {
5451 // CHECK-NEXT:      "id": "0x{{.*}}",
5452 // CHECK-NEXT:      "kind": "DeclRefExpr",
5453 // CHECK-NEXT:      "range": {
5454 // CHECK-NEXT:       "begin": {
5455 // CHECK-NEXT:        "offset": 1344,
5456 // CHECK-NEXT:        "line": 104,
5457 // CHECK-NEXT:        "col": 3,
5458 // CHECK-NEXT:        "tokLen": 3
5459 // CHECK-NEXT:       },
5460 // CHECK-NEXT:       "end": {
5461 // CHECK-NEXT:        "offset": 1344,
5462 // CHECK-NEXT:        "col": 3,
5463 // CHECK-NEXT:        "tokLen": 3
5464 // CHECK-NEXT:       }
5465 // CHECK-NEXT:      },
5466 // CHECK-NEXT:      "type": {
5467 // CHECK-NEXT:       "qualType": "int"
5468 // CHECK-NEXT:      },
5469 // CHECK-NEXT:      "valueCategory": "rvalue",
5470 // CHECK-NEXT:      "referencedDecl": {
5471 // CHECK-NEXT:       "id": "0x{{.*}}",
5472 // CHECK-NEXT:       "kind": "EnumConstantDecl",
5473 // CHECK-NEXT:       "name": "One",
5474 // CHECK-NEXT:       "type": {
5475 // CHECK-NEXT:        "qualType": "int"
5476 // CHECK-NEXT:       }
5477 // CHECK-NEXT:      }
5478 // CHECK-NEXT:     },
5479 // CHECK-NEXT:     {
5480 // CHECK-NEXT:      "id": "0x{{.*}}",
5481 // CHECK-NEXT:      "kind": "ImplicitCastExpr",
5482 // CHECK-NEXT:      "range": {
5483 // CHECK-NEXT:       "begin": {
5484 // CHECK-NEXT:        "offset": 1354,
5485 // CHECK-NEXT:        "line": 106,
5486 // CHECK-NEXT:        "col": 3,
5487 // CHECK-NEXT:        "tokLen": 1
5488 // CHECK-NEXT:       },
5489 // CHECK-NEXT:       "end": {
5490 // CHECK-NEXT:        "offset": 1356,
5491 // CHECK-NEXT:        "col": 5,
5492 // CHECK-NEXT:        "tokLen": 1
5493 // CHECK-NEXT:       }
5494 // CHECK-NEXT:      },
5495 // CHECK-NEXT:      "type": {
5496 // CHECK-NEXT:       "qualType": "int"
5497 // CHECK-NEXT:      },
5498 // CHECK-NEXT:      "valueCategory": "rvalue",
5499 // CHECK-NEXT:      "castKind": "LValueToRValue",
5500 // CHECK-NEXT:      "inner": [
5501 // CHECK-NEXT:       {
5502 // CHECK-NEXT:        "id": "0x{{.*}}",
5503 // CHECK-NEXT:        "kind": "ParenExpr",
5504 // CHECK-NEXT:        "range": {
5505 // CHECK-NEXT:         "begin": {
5506 // CHECK-NEXT:          "offset": 1354,
5507 // CHECK-NEXT:          "col": 3,
5508 // CHECK-NEXT:          "tokLen": 1
5509 // CHECK-NEXT:         },
5510 // CHECK-NEXT:         "end": {
5511 // CHECK-NEXT:          "offset": 1356,
5512 // CHECK-NEXT:          "col": 5,
5513 // CHECK-NEXT:          "tokLen": 1
5514 // CHECK-NEXT:         }
5515 // CHECK-NEXT:        },
5516 // CHECK-NEXT:        "type": {
5517 // CHECK-NEXT:         "qualType": "int"
5518 // CHECK-NEXT:        },
5519 // CHECK-NEXT:        "valueCategory": "lvalue",
5520 // CHECK-NEXT:        "inner": [
5521 // CHECK-NEXT:         {
5522 // CHECK-NEXT:          "id": "0x{{.*}}",
5523 // CHECK-NEXT:          "kind": "DeclRefExpr",
5524 // CHECK-NEXT:          "range": {
5525 // CHECK-NEXT:           "begin": {
5526 // CHECK-NEXT:            "offset": 1355,
5527 // CHECK-NEXT:            "col": 4,
5528 // CHECK-NEXT:            "tokLen": 1
5529 // CHECK-NEXT:           },
5530 // CHECK-NEXT:           "end": {
5531 // CHECK-NEXT:            "offset": 1355,
5532 // CHECK-NEXT:            "col": 4,
5533 // CHECK-NEXT:            "tokLen": 1
5534 // CHECK-NEXT:           }
5535 // CHECK-NEXT:          },
5536 // CHECK-NEXT:          "type": {
5537 // CHECK-NEXT:           "qualType": "int"
5538 // CHECK-NEXT:          },
5539 // CHECK-NEXT:          "valueCategory": "lvalue",
5540 // CHECK-NEXT:          "referencedDecl": {
5541 // CHECK-NEXT:           "id": "0x{{.*}}",
5542 // CHECK-NEXT:           "kind": "ParmVarDecl",
5543 // CHECK-NEXT:           "name": "a",
5544 // CHECK-NEXT:           "type": {
5545 // CHECK-NEXT:            "qualType": "int"
5546 // CHECK-NEXT:           }
5547 // CHECK-NEXT:          }
5548 // CHECK-NEXT:         }
5549 // CHECK-NEXT:        ]
5550 // CHECK-NEXT:       }
5551 // CHECK-NEXT:      ]
5552 // CHECK-NEXT:     }
5553 // CHECK-NEXT:    ]
5554 // CHECK-NEXT:   }
5555 // CHECK-NEXT:  ]
5556 // CHECK-NEXT: }
5557