xref: /llvm-project/clang/test/AST/ast-dump-default-arg-json.cpp (revision 986d0dba85f3239671c5151d9817b73de08664a0)
1 // RUN: %clang_cc1 -std=c++23 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s
2 
3 struct S {
4   int arr[1];
beginS5   const int *begin() const { return arr; }
endS6   const int *end() const { return &arr[1]; }
SS7   S() {}
~SS8   ~S() {}
9 };
10 
11 S func(const int &, const S &s = S());
12 
test()13 void test() {
14   for (auto v : func(1)) {}
15 }
16 
17 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
18 
19 
20 // CHECK-NOT: {{^}}Dumping
21 // CHECK:  "kind": "TranslationUnitDecl",
22 // CHECK-NEXT:  "loc": {},
23 // CHECK-NEXT:  "range": {
24 // CHECK-NEXT:   "begin": {},
25 // CHECK-NEXT:   "end": {}
26 // CHECK-NEXT:  },
27 // CHECK-NEXT:  "inner": [
28 // CHECK-NEXT:   {
29 // CHECK-NEXT:    "id": "0x{{.*}}",
30 // CHECK-NEXT:    "kind": "TypedefDecl",
31 // CHECK-NEXT:    "loc": {},
32 // CHECK-NEXT:    "range": {
33 // CHECK-NEXT:     "begin": {},
34 // CHECK-NEXT:     "end": {}
35 // CHECK-NEXT:    },
36 // CHECK-NEXT:    "isImplicit": true,
37 // CHECK-NEXT:    "name": "__int128_t",
38 // CHECK-NEXT:    "type": {
39 // CHECK-NEXT:     "qualType": "__int128"
40 // CHECK-NEXT:    },
41 // CHECK-NEXT:    "inner": [
42 // CHECK-NEXT:     {
43 // CHECK-NEXT:      "id": "0x{{.*}}",
44 // CHECK-NEXT:      "kind": "BuiltinType",
45 // CHECK-NEXT:      "type": {
46 // CHECK-NEXT:       "qualType": "__int128"
47 // CHECK-NEXT:      }
48 // CHECK-NEXT:     }
49 // CHECK-NEXT:    ]
50 // CHECK-NEXT:   },
51 // CHECK-NEXT:   {
52 // CHECK-NEXT:    "id": "0x{{.*}}",
53 // CHECK-NEXT:    "kind": "TypedefDecl",
54 // CHECK-NEXT:    "loc": {},
55 // CHECK-NEXT:    "range": {
56 // CHECK-NEXT:     "begin": {},
57 // CHECK-NEXT:     "end": {}
58 // CHECK-NEXT:    },
59 // CHECK-NEXT:    "isImplicit": true,
60 // CHECK-NEXT:    "name": "__uint128_t",
61 // CHECK-NEXT:    "type": {
62 // CHECK-NEXT:     "qualType": "unsigned __int128"
63 // CHECK-NEXT:    },
64 // CHECK-NEXT:    "inner": [
65 // CHECK-NEXT:     {
66 // CHECK-NEXT:      "id": "0x{{.*}}",
67 // CHECK-NEXT:      "kind": "BuiltinType",
68 // CHECK-NEXT:      "type": {
69 // CHECK-NEXT:       "qualType": "unsigned __int128"
70 // CHECK-NEXT:      }
71 // CHECK-NEXT:     }
72 // CHECK-NEXT:    ]
73 // CHECK-NEXT:   },
74 // CHECK-NEXT:   {
75 // CHECK-NEXT:    "id": "0x{{.*}}",
76 // CHECK-NEXT:    "kind": "TypedefDecl",
77 // CHECK-NEXT:    "loc": {},
78 // CHECK-NEXT:    "range": {
79 // CHECK-NEXT:     "begin": {},
80 // CHECK-NEXT:     "end": {}
81 // CHECK-NEXT:    },
82 // CHECK-NEXT:    "isImplicit": true,
83 // CHECK-NEXT:    "name": "__NSConstantString",
84 // CHECK-NEXT:    "type": {
85 // CHECK-NEXT:     "qualType": "__NSConstantString_tag"
86 // CHECK-NEXT:    },
87 // CHECK-NEXT:    "inner": [
88 // CHECK-NEXT:     {
89 // CHECK-NEXT:      "id": "0x{{.*}}",
90 // CHECK-NEXT:      "kind": "RecordType",
91 // CHECK-NEXT:      "type": {
92 // CHECK-NEXT:       "qualType": "__NSConstantString_tag"
93 // CHECK-NEXT:      },
94 // CHECK-NEXT:      "decl": {
95 // CHECK-NEXT:       "id": "0x{{.*}}",
96 // CHECK-NEXT:       "kind": "CXXRecordDecl",
97 // CHECK-NEXT:       "name": "__NSConstantString_tag"
98 // CHECK-NEXT:      }
99 // CHECK-NEXT:     }
100 // CHECK-NEXT:    ]
101 // CHECK-NEXT:   },
102 // CHECK-NEXT:   {
103 // CHECK-NEXT:    "id": "0x{{.*}}",
104 // CHECK-NEXT:    "kind": "TypedefDecl",
105 // CHECK-NEXT:    "loc": {},
106 // CHECK-NEXT:    "range": {
107 // CHECK-NEXT:     "begin": {},
108 // CHECK-NEXT:     "end": {}
109 // CHECK-NEXT:    },
110 // CHECK-NEXT:    "isImplicit": true,
111 // CHECK-NEXT:    "name": "__builtin_ms_va_list",
112 // CHECK-NEXT:    "type": {
113 // CHECK-NEXT:     "qualType": "char *"
114 // CHECK-NEXT:    },
115 // CHECK-NEXT:    "inner": [
116 // CHECK-NEXT:     {
117 // CHECK-NEXT:      "id": "0x{{.*}}",
118 // CHECK-NEXT:      "kind": "PointerType",
119 // CHECK-NEXT:      "type": {
120 // CHECK-NEXT:       "qualType": "char *"
121 // CHECK-NEXT:      },
122 // CHECK-NEXT:      "inner": [
123 // CHECK-NEXT:       {
124 // CHECK-NEXT:        "id": "0x{{.*}}",
125 // CHECK-NEXT:        "kind": "BuiltinType",
126 // CHECK-NEXT:        "type": {
127 // CHECK-NEXT:         "qualType": "char"
128 // CHECK-NEXT:        }
129 // CHECK-NEXT:       }
130 // CHECK-NEXT:      ]
131 // CHECK-NEXT:     }
132 // CHECK-NEXT:    ]
133 // CHECK-NEXT:   },
134 // CHECK-NEXT:   {
135 // CHECK-NEXT:    "id": "0x{{.*}}",
136 // CHECK-NEXT:    "kind": "TypedefDecl",
137 // CHECK-NEXT:    "loc": {},
138 // CHECK-NEXT:    "range": {
139 // CHECK-NEXT:     "begin": {},
140 // CHECK-NEXT:     "end": {}
141 // CHECK-NEXT:    },
142 // CHECK-NEXT:    "isImplicit": true,
143 // CHECK-NEXT:    "name": "__builtin_va_list",
144 // CHECK-NEXT:    "type": {
145 // CHECK-NEXT:     "qualType": "__va_list_tag[1]"
146 // CHECK-NEXT:    },
147 // CHECK-NEXT:    "inner": [
148 // CHECK-NEXT:     {
149 // CHECK-NEXT:      "id": "0x{{.*}}",
150 // CHECK-NEXT:      "kind": "ConstantArrayType",
151 // CHECK-NEXT:      "type": {
152 // CHECK-NEXT:       "qualType": "__va_list_tag[1]"
153 // CHECK-NEXT:      },
154 // CHECK-NEXT:      "size": 1,
155 // CHECK-NEXT:      "inner": [
156 // CHECK-NEXT:       {
157 // CHECK-NEXT:        "id": "0x{{.*}}",
158 // CHECK-NEXT:        "kind": "RecordType",
159 // CHECK-NEXT:        "type": {
160 // CHECK-NEXT:         "qualType": "__va_list_tag"
161 // CHECK-NEXT:        },
162 // CHECK-NEXT:        "decl": {
163 // CHECK-NEXT:         "id": "0x{{.*}}",
164 // CHECK-NEXT:         "kind": "CXXRecordDecl",
165 // CHECK-NEXT:         "name": "__va_list_tag"
166 // CHECK-NEXT:        }
167 // CHECK-NEXT:       }
168 // CHECK-NEXT:      ]
169 // CHECK-NEXT:     }
170 // CHECK-NEXT:    ]
171 // CHECK-NEXT:   },
172 // CHECK-NEXT:   {
173 // CHECK-NEXT:    "id": "0x{{.*}}",
174 // CHECK-NEXT:    "kind": "CXXRecordDecl",
175 // CHECK-NEXT:    "loc": {
176 // CHECK-NEXT:     "offset": 110,
177 // CHECK-NEXT:     "file": "{{.*}}",
178 // CHECK-NEXT:     "line": 3,
179 // CHECK-NEXT:     "col": 8,
180 // CHECK-NEXT:     "tokLen": 1
181 // CHECK-NEXT:    },
182 // CHECK-NEXT:    "range": {
183 // CHECK-NEXT:     "begin": {
184 // CHECK-NEXT:      "offset": 103,
185 // CHECK-NEXT:      "col": 1,
186 // CHECK-NEXT:      "tokLen": 6
187 // CHECK-NEXT:     },
188 // CHECK-NEXT:     "end": {
189 // CHECK-NEXT:      "offset": 235,
190 // CHECK-NEXT:      "line": 9,
191 // CHECK-NEXT:      "col": 1,
192 // CHECK-NEXT:      "tokLen": 1
193 // CHECK-NEXT:     }
194 // CHECK-NEXT:    },
195 // CHECK-NEXT:    "isReferenced": true,
196 // CHECK-NEXT:    "name": "S",
197 // CHECK-NEXT:    "tagUsed": "struct",
198 // CHECK-NEXT:    "completeDefinition": true,
199 // CHECK-NEXT:    "definitionData": {
200 // CHECK-NEXT:     "canConstDefaultInit": true,
201 // CHECK-NEXT:     "copyAssign": {
202 // CHECK-NEXT:      "hasConstParam": true,
203 // CHECK-NEXT:      "implicitHasConstParam": true,
204 // CHECK-NEXT:      "needsImplicit": true,
205 // CHECK-NEXT:      "simple": true,
206 // CHECK-NEXT:      "trivial": true
207 // CHECK-NEXT:     },
208 // CHECK-NEXT:     "copyCtor": {
209 // CHECK-NEXT:      "hasConstParam": true,
210 // CHECK-NEXT:      "implicitHasConstParam": true,
211 // CHECK-NEXT:      "simple": true,
212 // CHECK-NEXT:      "trivial": true
213 // CHECK-NEXT:     },
214 // CHECK-NEXT:     "defaultCtor": {
215 // CHECK-NEXT:      "defaultedIsConstexpr": true,
216 // CHECK-NEXT:      "exists": true,
217 // CHECK-NEXT:      "nonTrivial": true,
218 // CHECK-NEXT:      "userProvided": true
219 // CHECK-NEXT:     },
220 // CHECK-NEXT:     "dtor": {
221 // CHECK-NEXT:      "nonTrivial": true,
222 // CHECK-NEXT:      "userDeclared": true
223 // CHECK-NEXT:     },
224 // CHECK-NEXT:     "hasUserDeclaredConstructor": true,
225 // CHECK-NEXT:     "isStandardLayout": true,
226 // CHECK-NEXT:     "moveAssign": {},
227 // CHECK-NEXT:     "moveCtor": {}
228 // CHECK-NEXT:    },
229 // CHECK-NEXT:    "inner": [
230 // CHECK-NEXT:     {
231 // CHECK-NEXT:      "id": "0x{{.*}}",
232 // CHECK-NEXT:      "kind": "CXXRecordDecl",
233 // CHECK-NEXT:      "loc": {
234 // CHECK-NEXT:       "offset": 110,
235 // CHECK-NEXT:       "line": 3,
236 // CHECK-NEXT:       "col": 8,
237 // CHECK-NEXT:       "tokLen": 1
238 // CHECK-NEXT:      },
239 // CHECK-NEXT:      "range": {
240 // CHECK-NEXT:       "begin": {
241 // CHECK-NEXT:        "offset": 103,
242 // CHECK-NEXT:        "col": 1,
243 // CHECK-NEXT:        "tokLen": 6
244 // CHECK-NEXT:       },
245 // CHECK-NEXT:       "end": {
246 // CHECK-NEXT:        "offset": 110,
247 // CHECK-NEXT:        "col": 8,
248 // CHECK-NEXT:        "tokLen": 1
249 // CHECK-NEXT:       }
250 // CHECK-NEXT:      },
251 // CHECK-NEXT:      "isImplicit": true,
252 // CHECK-NEXT:      "isReferenced": true,
253 // CHECK-NEXT:      "name": "S",
254 // CHECK-NEXT:      "tagUsed": "struct"
255 // CHECK-NEXT:     },
256 // CHECK-NEXT:     {
257 // CHECK-NEXT:      "id": "0x{{.*}}",
258 // CHECK-NEXT:      "kind": "FieldDecl",
259 // CHECK-NEXT:      "loc": {
260 // CHECK-NEXT:       "offset": 120,
261 // CHECK-NEXT:       "line": 4,
262 // CHECK-NEXT:       "col": 7,
263 // CHECK-NEXT:       "tokLen": 3
264 // CHECK-NEXT:      },
265 // CHECK-NEXT:      "range": {
266 // CHECK-NEXT:       "begin": {
267 // CHECK-NEXT:        "offset": 116,
268 // CHECK-NEXT:        "col": 3,
269 // CHECK-NEXT:        "tokLen": 3
270 // CHECK-NEXT:       },
271 // CHECK-NEXT:       "end": {
272 // CHECK-NEXT:        "offset": 125,
273 // CHECK-NEXT:        "col": 12,
274 // CHECK-NEXT:        "tokLen": 1
275 // CHECK-NEXT:       }
276 // CHECK-NEXT:      },
277 // CHECK-NEXT:      "isReferenced": true,
278 // CHECK-NEXT:      "name": "arr",
279 // CHECK-NEXT:      "type": {
280 // CHECK-NEXT:       "qualType": "int[1]"
281 // CHECK-NEXT:      }
282 // CHECK-NEXT:     },
283 // CHECK-NEXT:     {
284 // CHECK-NEXT:      "id": "0x{{.*}}",
285 // CHECK-NEXT:      "kind": "CXXMethodDecl",
286 // CHECK-NEXT:      "loc": {
287 // CHECK-NEXT:       "offset": 141,
288 // CHECK-NEXT:       "line": 5,
289 // CHECK-NEXT:       "col": 14,
290 // CHECK-NEXT:       "tokLen": 5
291 // CHECK-NEXT:      },
292 // CHECK-NEXT:      "range": {
293 // CHECK-NEXT:       "begin": {
294 // CHECK-NEXT:        "offset": 130,
295 // CHECK-NEXT:        "col": 3,
296 // CHECK-NEXT:        "tokLen": 5
297 // CHECK-NEXT:       },
298 // CHECK-NEXT:       "end": {
299 // CHECK-NEXT:        "offset": 169,
300 // CHECK-NEXT:        "col": 42,
301 // CHECK-NEXT:        "tokLen": 1
302 // CHECK-NEXT:       }
303 // CHECK-NEXT:      },
304 // CHECK-NEXT:      "isUsed": true,
305 // CHECK-NEXT:      "name": "begin",
306 // CHECK-NEXT:      "mangledName": "_ZNK1S5beginEv",
307 // CHECK-NEXT:      "type": {
308 // CHECK-NEXT:       "qualType": "const int *() const"
309 // CHECK-NEXT:      },
310 // CHECK-NEXT:      "inner": [
311 // CHECK-NEXT:       {
312 // CHECK-NEXT:        "id": "0x{{.*}}",
313 // CHECK-NEXT:        "kind": "CompoundStmt",
314 // CHECK-NEXT:        "range": {
315 // CHECK-NEXT:         "begin": {
316 // CHECK-NEXT:          "offset": 155,
317 // CHECK-NEXT:          "col": 28,
318 // CHECK-NEXT:          "tokLen": 1
319 // CHECK-NEXT:         },
320 // CHECK-NEXT:         "end": {
321 // CHECK-NEXT:          "offset": 169,
322 // CHECK-NEXT:          "col": 42,
323 // CHECK-NEXT:          "tokLen": 1
324 // CHECK-NEXT:         }
325 // CHECK-NEXT:        },
326 // CHECK-NEXT:        "inner": [
327 // CHECK-NEXT:         {
328 // CHECK-NEXT:          "id": "0x{{.*}}",
329 // CHECK-NEXT:          "kind": "ReturnStmt",
330 // CHECK-NEXT:          "range": {
331 // CHECK-NEXT:           "begin": {
332 // CHECK-NEXT:            "offset": 157,
333 // CHECK-NEXT:            "col": 30,
334 // CHECK-NEXT:            "tokLen": 6
335 // CHECK-NEXT:           },
336 // CHECK-NEXT:           "end": {
337 // CHECK-NEXT:            "offset": 164,
338 // CHECK-NEXT:            "col": 37,
339 // CHECK-NEXT:            "tokLen": 3
340 // CHECK-NEXT:           }
341 // CHECK-NEXT:          },
342 // CHECK-NEXT:          "inner": [
343 // CHECK-NEXT:           {
344 // CHECK-NEXT:            "id": "0x{{.*}}",
345 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
346 // CHECK-NEXT:            "range": {
347 // CHECK-NEXT:             "begin": {
348 // CHECK-NEXT:              "offset": 164,
349 // CHECK-NEXT:              "col": 37,
350 // CHECK-NEXT:              "tokLen": 3
351 // CHECK-NEXT:             },
352 // CHECK-NEXT:             "end": {
353 // CHECK-NEXT:              "offset": 164,
354 // CHECK-NEXT:              "col": 37,
355 // CHECK-NEXT:              "tokLen": 3
356 // CHECK-NEXT:             }
357 // CHECK-NEXT:            },
358 // CHECK-NEXT:            "type": {
359 // CHECK-NEXT:             "qualType": "const int *"
360 // CHECK-NEXT:            },
361 // CHECK-NEXT:            "valueCategory": "prvalue",
362 // CHECK-NEXT:            "castKind": "ArrayToPointerDecay",
363 // CHECK-NEXT:            "inner": [
364 // CHECK-NEXT:             {
365 // CHECK-NEXT:              "id": "0x{{.*}}",
366 // CHECK-NEXT:              "kind": "MemberExpr",
367 // CHECK-NEXT:              "range": {
368 // CHECK-NEXT:               "begin": {
369 // CHECK-NEXT:                "offset": 164,
370 // CHECK-NEXT:                "col": 37,
371 // CHECK-NEXT:                "tokLen": 3
372 // CHECK-NEXT:               },
373 // CHECK-NEXT:               "end": {
374 // CHECK-NEXT:                "offset": 164,
375 // CHECK-NEXT:                "col": 37,
376 // CHECK-NEXT:                "tokLen": 3
377 // CHECK-NEXT:               }
378 // CHECK-NEXT:              },
379 // CHECK-NEXT:              "type": {
380 // CHECK-NEXT:               "qualType": "const int[1]"
381 // CHECK-NEXT:              },
382 // CHECK-NEXT:              "valueCategory": "lvalue",
383 // CHECK-NEXT:              "name": "arr",
384 // CHECK-NEXT:              "isArrow": true,
385 // CHECK-NEXT:              "referencedMemberDecl": "0x{{.*}}",
386 // CHECK-NEXT:              "inner": [
387 // CHECK-NEXT:               {
388 // CHECK-NEXT:                "id": "0x{{.*}}",
389 // CHECK-NEXT:                "kind": "CXXThisExpr",
390 // CHECK-NEXT:                "range": {
391 // CHECK-NEXT:                 "begin": {
392 // CHECK-NEXT:                  "offset": 164,
393 // CHECK-NEXT:                  "col": 37,
394 // CHECK-NEXT:                  "tokLen": 3
395 // CHECK-NEXT:                 },
396 // CHECK-NEXT:                 "end": {
397 // CHECK-NEXT:                  "offset": 164,
398 // CHECK-NEXT:                  "col": 37,
399 // CHECK-NEXT:                  "tokLen": 3
400 // CHECK-NEXT:                 }
401 // CHECK-NEXT:                },
402 // CHECK-NEXT:                "type": {
403 // CHECK-NEXT:                 "qualType": "const S *"
404 // CHECK-NEXT:                },
405 // CHECK-NEXT:                "valueCategory": "prvalue",
406 // CHECK-NEXT:                "implicit": true
407 // CHECK-NEXT:               }
408 // CHECK-NEXT:              ]
409 // CHECK-NEXT:             }
410 // CHECK-NEXT:            ]
411 // CHECK-NEXT:           }
412 // CHECK-NEXT:          ]
413 // CHECK-NEXT:         }
414 // CHECK-NEXT:        ]
415 // CHECK-NEXT:       }
416 // CHECK-NEXT:      ]
417 // CHECK-NEXT:     },
418 // CHECK-NEXT:     {
419 // CHECK-NEXT:      "id": "0x{{.*}}",
420 // CHECK-NEXT:      "kind": "CXXMethodDecl",
421 // CHECK-NEXT:      "loc": {
422 // CHECK-NEXT:       "offset": 184,
423 // CHECK-NEXT:       "line": 6,
424 // CHECK-NEXT:       "col": 14,
425 // CHECK-NEXT:       "tokLen": 3
426 // CHECK-NEXT:      },
427 // CHECK-NEXT:      "range": {
428 // CHECK-NEXT:       "begin": {
429 // CHECK-NEXT:        "offset": 173,
430 // CHECK-NEXT:        "col": 3,
431 // CHECK-NEXT:        "tokLen": 5
432 // CHECK-NEXT:       },
433 // CHECK-NEXT:       "end": {
434 // CHECK-NEXT:        "offset": 214,
435 // CHECK-NEXT:        "col": 44,
436 // CHECK-NEXT:        "tokLen": 1
437 // CHECK-NEXT:       }
438 // CHECK-NEXT:      },
439 // CHECK-NEXT:      "isUsed": true,
440 // CHECK-NEXT:      "name": "end",
441 // CHECK-NEXT:      "mangledName": "_ZNK1S3endEv",
442 // CHECK-NEXT:      "type": {
443 // CHECK-NEXT:       "qualType": "const int *() const"
444 // CHECK-NEXT:      },
445 // CHECK-NEXT:      "inner": [
446 // CHECK-NEXT:       {
447 // CHECK-NEXT:        "id": "0x{{.*}}",
448 // CHECK-NEXT:        "kind": "CompoundStmt",
449 // CHECK-NEXT:        "range": {
450 // CHECK-NEXT:         "begin": {
451 // CHECK-NEXT:          "offset": 196,
452 // CHECK-NEXT:          "col": 26,
453 // CHECK-NEXT:          "tokLen": 1
454 // CHECK-NEXT:         },
455 // CHECK-NEXT:         "end": {
456 // CHECK-NEXT:          "offset": 214,
457 // CHECK-NEXT:          "col": 44,
458 // CHECK-NEXT:          "tokLen": 1
459 // CHECK-NEXT:         }
460 // CHECK-NEXT:        },
461 // CHECK-NEXT:        "inner": [
462 // CHECK-NEXT:         {
463 // CHECK-NEXT:          "id": "0x{{.*}}",
464 // CHECK-NEXT:          "kind": "ReturnStmt",
465 // CHECK-NEXT:          "range": {
466 // CHECK-NEXT:           "begin": {
467 // CHECK-NEXT:            "offset": 198,
468 // CHECK-NEXT:            "col": 28,
469 // CHECK-NEXT:            "tokLen": 6
470 // CHECK-NEXT:           },
471 // CHECK-NEXT:           "end": {
472 // CHECK-NEXT:            "offset": 211,
473 // CHECK-NEXT:            "col": 41,
474 // CHECK-NEXT:            "tokLen": 1
475 // CHECK-NEXT:           }
476 // CHECK-NEXT:          },
477 // CHECK-NEXT:          "inner": [
478 // CHECK-NEXT:           {
479 // CHECK-NEXT:            "id": "0x{{.*}}",
480 // CHECK-NEXT:            "kind": "UnaryOperator",
481 // CHECK-NEXT:            "range": {
482 // CHECK-NEXT:             "begin": {
483 // CHECK-NEXT:              "offset": 205,
484 // CHECK-NEXT:              "col": 35,
485 // CHECK-NEXT:              "tokLen": 1
486 // CHECK-NEXT:             },
487 // CHECK-NEXT:             "end": {
488 // CHECK-NEXT:              "offset": 211,
489 // CHECK-NEXT:              "col": 41,
490 // CHECK-NEXT:              "tokLen": 1
491 // CHECK-NEXT:             }
492 // CHECK-NEXT:            },
493 // CHECK-NEXT:            "type": {
494 // CHECK-NEXT:             "qualType": "const int *"
495 // CHECK-NEXT:            },
496 // CHECK-NEXT:            "valueCategory": "prvalue",
497 // CHECK-NEXT:            "isPostfix": false,
498 // CHECK-NEXT:            "opcode": "&",
499 // CHECK-NEXT:            "canOverflow": false,
500 // CHECK-NEXT:            "inner": [
501 // CHECK-NEXT:             {
502 // CHECK-NEXT:              "id": "0x{{.*}}",
503 // CHECK-NEXT:              "kind": "ArraySubscriptExpr",
504 // CHECK-NEXT:              "range": {
505 // CHECK-NEXT:               "begin": {
506 // CHECK-NEXT:                "offset": 206,
507 // CHECK-NEXT:                "col": 36,
508 // CHECK-NEXT:                "tokLen": 3
509 // CHECK-NEXT:               },
510 // CHECK-NEXT:               "end": {
511 // CHECK-NEXT:                "offset": 211,
512 // CHECK-NEXT:                "col": 41,
513 // CHECK-NEXT:                "tokLen": 1
514 // CHECK-NEXT:               }
515 // CHECK-NEXT:              },
516 // CHECK-NEXT:              "type": {
517 // CHECK-NEXT:               "qualType": "const int"
518 // CHECK-NEXT:              },
519 // CHECK-NEXT:              "valueCategory": "lvalue",
520 // CHECK-NEXT:              "inner": [
521 // CHECK-NEXT:               {
522 // CHECK-NEXT:                "id": "0x{{.*}}",
523 // CHECK-NEXT:                "kind": "ImplicitCastExpr",
524 // CHECK-NEXT:                "range": {
525 // CHECK-NEXT:                 "begin": {
526 // CHECK-NEXT:                  "offset": 206,
527 // CHECK-NEXT:                  "col": 36,
528 // CHECK-NEXT:                  "tokLen": 3
529 // CHECK-NEXT:                 },
530 // CHECK-NEXT:                 "end": {
531 // CHECK-NEXT:                  "offset": 206,
532 // CHECK-NEXT:                  "col": 36,
533 // CHECK-NEXT:                  "tokLen": 3
534 // CHECK-NEXT:                 }
535 // CHECK-NEXT:                },
536 // CHECK-NEXT:                "type": {
537 // CHECK-NEXT:                 "qualType": "const int *"
538 // CHECK-NEXT:                },
539 // CHECK-NEXT:                "valueCategory": "prvalue",
540 // CHECK-NEXT:                "castKind": "ArrayToPointerDecay",
541 // CHECK-NEXT:                "inner": [
542 // CHECK-NEXT:                 {
543 // CHECK-NEXT:                  "id": "0x{{.*}}",
544 // CHECK-NEXT:                  "kind": "MemberExpr",
545 // CHECK-NEXT:                  "range": {
546 // CHECK-NEXT:                   "begin": {
547 // CHECK-NEXT:                    "offset": 206,
548 // CHECK-NEXT:                    "col": 36,
549 // CHECK-NEXT:                    "tokLen": 3
550 // CHECK-NEXT:                   },
551 // CHECK-NEXT:                   "end": {
552 // CHECK-NEXT:                    "offset": 206,
553 // CHECK-NEXT:                    "col": 36,
554 // CHECK-NEXT:                    "tokLen": 3
555 // CHECK-NEXT:                   }
556 // CHECK-NEXT:                  },
557 // CHECK-NEXT:                  "type": {
558 // CHECK-NEXT:                   "qualType": "const int[1]"
559 // CHECK-NEXT:                  },
560 // CHECK-NEXT:                  "valueCategory": "lvalue",
561 // CHECK-NEXT:                  "name": "arr",
562 // CHECK-NEXT:                  "isArrow": true,
563 // CHECK-NEXT:                  "referencedMemberDecl": "0x{{.*}}",
564 // CHECK-NEXT:                  "inner": [
565 // CHECK-NEXT:                   {
566 // CHECK-NEXT:                    "id": "0x{{.*}}",
567 // CHECK-NEXT:                    "kind": "CXXThisExpr",
568 // CHECK-NEXT:                    "range": {
569 // CHECK-NEXT:                     "begin": {
570 // CHECK-NEXT:                      "offset": 206,
571 // CHECK-NEXT:                      "col": 36,
572 // CHECK-NEXT:                      "tokLen": 3
573 // CHECK-NEXT:                     },
574 // CHECK-NEXT:                     "end": {
575 // CHECK-NEXT:                      "offset": 206,
576 // CHECK-NEXT:                      "col": 36,
577 // CHECK-NEXT:                      "tokLen": 3
578 // CHECK-NEXT:                     }
579 // CHECK-NEXT:                    },
580 // CHECK-NEXT:                    "type": {
581 // CHECK-NEXT:                     "qualType": "const S *"
582 // CHECK-NEXT:                    },
583 // CHECK-NEXT:                    "valueCategory": "prvalue",
584 // CHECK-NEXT:                    "implicit": true
585 // CHECK-NEXT:                   }
586 // CHECK-NEXT:                  ]
587 // CHECK-NEXT:                 }
588 // CHECK-NEXT:                ]
589 // CHECK-NEXT:               },
590 // CHECK-NEXT:               {
591 // CHECK-NEXT:                "id": "0x{{.*}}",
592 // CHECK-NEXT:                "kind": "IntegerLiteral",
593 // CHECK-NEXT:                "range": {
594 // CHECK-NEXT:                 "begin": {
595 // CHECK-NEXT:                  "offset": 210,
596 // CHECK-NEXT:                  "col": 40,
597 // CHECK-NEXT:                  "tokLen": 1
598 // CHECK-NEXT:                 },
599 // CHECK-NEXT:                 "end": {
600 // CHECK-NEXT:                  "offset": 210,
601 // CHECK-NEXT:                  "col": 40,
602 // CHECK-NEXT:                  "tokLen": 1
603 // CHECK-NEXT:                 }
604 // CHECK-NEXT:                },
605 // CHECK-NEXT:                "type": {
606 // CHECK-NEXT:                 "qualType": "int"
607 // CHECK-NEXT:                },
608 // CHECK-NEXT:                "valueCategory": "prvalue",
609 // CHECK-NEXT:                "value": "1"
610 // CHECK-NEXT:               }
611 // CHECK-NEXT:              ]
612 // CHECK-NEXT:             }
613 // CHECK-NEXT:            ]
614 // CHECK-NEXT:           }
615 // CHECK-NEXT:          ]
616 // CHECK-NEXT:         }
617 // CHECK-NEXT:        ]
618 // CHECK-NEXT:       }
619 // CHECK-NEXT:      ]
620 // CHECK-NEXT:     },
621 // CHECK-NEXT:     {
622 // CHECK-NEXT:      "id": "0x{{.*}}",
623 // CHECK-NEXT:      "kind": "CXXConstructorDecl",
624 // CHECK-NEXT:      "loc": {
625 // CHECK-NEXT:       "offset": 218,
626 // CHECK-NEXT:       "line": 7,
627 // CHECK-NEXT:       "col": 3,
628 // CHECK-NEXT:       "tokLen": 1
629 // CHECK-NEXT:      },
630 // CHECK-NEXT:      "range": {
631 // CHECK-NEXT:       "begin": {
632 // CHECK-NEXT:        "offset": 218,
633 // CHECK-NEXT:        "col": 3,
634 // CHECK-NEXT:        "tokLen": 1
635 // CHECK-NEXT:       },
636 // CHECK-NEXT:       "end": {
637 // CHECK-NEXT:        "offset": 223,
638 // CHECK-NEXT:        "col": 8,
639 // CHECK-NEXT:        "tokLen": 1
640 // CHECK-NEXT:       }
641 // CHECK-NEXT:      },
642 // CHECK-NEXT:      "isUsed": true,
643 // CHECK-NEXT:      "name": "S",
644 // CHECK-NEXT:      "mangledName": "_ZN1SC1Ev",
645 // CHECK-NEXT:      "type": {
646 // CHECK-NEXT:       "qualType": "void ()"
647 // CHECK-NEXT:      },
648 // CHECK-NEXT:      "inner": [
649 // CHECK-NEXT:       {
650 // CHECK-NEXT:        "id": "0x{{.*}}",
651 // CHECK-NEXT:        "kind": "CompoundStmt",
652 // CHECK-NEXT:        "range": {
653 // CHECK-NEXT:         "begin": {
654 // CHECK-NEXT:          "offset": 222,
655 // CHECK-NEXT:          "col": 7,
656 // CHECK-NEXT:          "tokLen": 1
657 // CHECK-NEXT:         },
658 // CHECK-NEXT:         "end": {
659 // CHECK-NEXT:          "offset": 223,
660 // CHECK-NEXT:          "col": 8,
661 // CHECK-NEXT:          "tokLen": 1
662 // CHECK-NEXT:         }
663 // CHECK-NEXT:        }
664 // CHECK-NEXT:       }
665 // CHECK-NEXT:      ]
666 // CHECK-NEXT:     },
667 // CHECK-NEXT:     {
668 // CHECK-NEXT:      "id": "0x{{.*}}",
669 // CHECK-NEXT:      "kind": "CXXDestructorDecl",
670 // CHECK-NEXT:      "loc": {
671 // CHECK-NEXT:       "offset": 227,
672 // CHECK-NEXT:       "line": 8,
673 // CHECK-NEXT:       "col": 3,
674 // CHECK-NEXT:       "tokLen": 1
675 // CHECK-NEXT:      },
676 // CHECK-NEXT:      "range": {
677 // CHECK-NEXT:       "begin": {
678 // CHECK-NEXT:        "offset": 227,
679 // CHECK-NEXT:        "col": 3,
680 // CHECK-NEXT:        "tokLen": 1
681 // CHECK-NEXT:       },
682 // CHECK-NEXT:       "end": {
683 // CHECK-NEXT:        "offset": 233,
684 // CHECK-NEXT:        "col": 9,
685 // CHECK-NEXT:        "tokLen": 1
686 // CHECK-NEXT:       }
687 // CHECK-NEXT:      },
688 // CHECK-NEXT:      "isUsed": true,
689 // CHECK-NEXT:      "name": "~S",
690 // CHECK-NEXT:      "mangledName": "_ZN1SD1Ev",
691 // CHECK-NEXT:      "type": {
692 // CHECK-NEXT:       "qualType": "void () noexcept"
693 // CHECK-NEXT:      },
694 // CHECK-NEXT:      "inner": [
695 // CHECK-NEXT:       {
696 // CHECK-NEXT:        "id": "0x{{.*}}",
697 // CHECK-NEXT:        "kind": "CompoundStmt",
698 // CHECK-NEXT:        "range": {
699 // CHECK-NEXT:         "begin": {
700 // CHECK-NEXT:          "offset": 232,
701 // CHECK-NEXT:          "col": 8,
702 // CHECK-NEXT:          "tokLen": 1
703 // CHECK-NEXT:         },
704 // CHECK-NEXT:         "end": {
705 // CHECK-NEXT:          "offset": 233,
706 // CHECK-NEXT:          "col": 9,
707 // CHECK-NEXT:          "tokLen": 1
708 // CHECK-NEXT:         }
709 // CHECK-NEXT:        }
710 // CHECK-NEXT:       }
711 // CHECK-NEXT:      ]
712 // CHECK-NEXT:     },
713 // CHECK-NEXT:     {
714 // CHECK-NEXT:      "id": "0x{{.*}}",
715 // CHECK-NEXT:      "kind": "CXXConstructorDecl",
716 // CHECK-NEXT:      "loc": {
717 // CHECK-NEXT:       "offset": 110,
718 // CHECK-NEXT:       "line": 3,
719 // CHECK-NEXT:       "col": 8,
720 // CHECK-NEXT:       "tokLen": 1
721 // CHECK-NEXT:      },
722 // CHECK-NEXT:      "range": {
723 // CHECK-NEXT:       "begin": {
724 // CHECK-NEXT:        "offset": 110,
725 // CHECK-NEXT:        "col": 8,
726 // CHECK-NEXT:        "tokLen": 1
727 // CHECK-NEXT:       },
728 // CHECK-NEXT:       "end": {
729 // CHECK-NEXT:        "offset": 110,
730 // CHECK-NEXT:        "col": 8,
731 // CHECK-NEXT:        "tokLen": 1
732 // CHECK-NEXT:       }
733 // CHECK-NEXT:      },
734 // CHECK-NEXT:      "isImplicit": true,
735 // CHECK-NEXT:      "name": "S",
736 // CHECK-NEXT:      "mangledName": "_ZN1SC1ERKS_",
737 // CHECK-NEXT:      "type": {
738 // CHECK-NEXT:       "qualType": "void (const S &)"
739 // CHECK-NEXT:      },
740 // CHECK-NEXT:      "inline": true,
741 // CHECK-NEXT:      "constexpr": true,
742 // CHECK-NEXT:      "explicitlyDefaulted": "default",
743 // CHECK-NEXT:      "inner": [
744 // CHECK-NEXT:       {
745 // CHECK-NEXT:        "id": "0x{{.*}}",
746 // CHECK-NEXT:        "kind": "ParmVarDecl",
747 // CHECK-NEXT:        "loc": {
748 // CHECK-NEXT:         "offset": 110,
749 // CHECK-NEXT:         "col": 8,
750 // CHECK-NEXT:         "tokLen": 1
751 // CHECK-NEXT:        },
752 // CHECK-NEXT:        "range": {
753 // CHECK-NEXT:         "begin": {
754 // CHECK-NEXT:          "offset": 110,
755 // CHECK-NEXT:          "col": 8,
756 // CHECK-NEXT:          "tokLen": 1
757 // CHECK-NEXT:         },
758 // CHECK-NEXT:         "end": {
759 // CHECK-NEXT:          "offset": 110,
760 // CHECK-NEXT:          "col": 8,
761 // CHECK-NEXT:          "tokLen": 1
762 // CHECK-NEXT:         }
763 // CHECK-NEXT:        },
764 // CHECK-NEXT:        "type": {
765 // CHECK-NEXT:         "qualType": "const S &"
766 // CHECK-NEXT:        }
767 // CHECK-NEXT:       }
768 // CHECK-NEXT:      ]
769 // CHECK-NEXT:     }
770 // CHECK-NEXT:    ]
771 // CHECK-NEXT:   },
772 // CHECK-NEXT:   {
773 // CHECK-NEXT:    "id": "0x{{.*}}",
774 // CHECK-NEXT:    "kind": "FunctionDecl",
775 // CHECK-NEXT:    "loc": {
776 // CHECK-NEXT:     "offset": 241,
777 // CHECK-NEXT:     "line": 11,
778 // CHECK-NEXT:     "col": 3,
779 // CHECK-NEXT:     "tokLen": 4
780 // CHECK-NEXT:    },
781 // CHECK-NEXT:    "range": {
782 // CHECK-NEXT:     "begin": {
783 // CHECK-NEXT:      "offset": 239,
784 // CHECK-NEXT:      "col": 1,
785 // CHECK-NEXT:      "tokLen": 1
786 // CHECK-NEXT:     },
787 // CHECK-NEXT:     "end": {
788 // CHECK-NEXT:      "offset": 275,
789 // CHECK-NEXT:      "col": 37,
790 // CHECK-NEXT:      "tokLen": 1
791 // CHECK-NEXT:     }
792 // CHECK-NEXT:    },
793 // CHECK-NEXT:    "isUsed": true,
794 // CHECK-NEXT:    "name": "func",
795 // CHECK-NEXT:    "mangledName": "_Z4funcRKiRK1S",
796 // CHECK-NEXT:    "type": {
797 // CHECK-NEXT:     "qualType": "S (const int &, const S &)"
798 // CHECK-NEXT:    },
799 // CHECK-NEXT:    "inner": [
800 // CHECK-NEXT:     {
801 // CHECK-NEXT:      "id": "0x{{.*}}",
802 // CHECK-NEXT:      "kind": "ParmVarDecl",
803 // CHECK-NEXT:      "loc": {
804 // CHECK-NEXT:       "offset": 257,
805 // CHECK-NEXT:       "col": 19,
806 // CHECK-NEXT:       "tokLen": 1
807 // CHECK-NEXT:      },
808 // CHECK-NEXT:      "range": {
809 // CHECK-NEXT:       "begin": {
810 // CHECK-NEXT:        "offset": 246,
811 // CHECK-NEXT:        "col": 8,
812 // CHECK-NEXT:        "tokLen": 5
813 // CHECK-NEXT:       },
814 // CHECK-NEXT:       "end": {
815 // CHECK-NEXT:        "offset": 256,
816 // CHECK-NEXT:        "col": 18,
817 // CHECK-NEXT:        "tokLen": 1
818 // CHECK-NEXT:       }
819 // CHECK-NEXT:      },
820 // CHECK-NEXT:      "type": {
821 // CHECK-NEXT:       "qualType": "const int &"
822 // CHECK-NEXT:      }
823 // CHECK-NEXT:     },
824 // CHECK-NEXT:     {
825 // CHECK-NEXT:      "id": "0x{{.*}}",
826 // CHECK-NEXT:      "kind": "ParmVarDecl",
827 // CHECK-NEXT:      "loc": {
828 // CHECK-NEXT:       "offset": 268,
829 // CHECK-NEXT:       "col": 30,
830 // CHECK-NEXT:       "tokLen": 1
831 // CHECK-NEXT:      },
832 // CHECK-NEXT:      "range": {
833 // CHECK-NEXT:       "begin": {
834 // CHECK-NEXT:        "offset": 259,
835 // CHECK-NEXT:        "col": 21,
836 // CHECK-NEXT:        "tokLen": 5
837 // CHECK-NEXT:       },
838 // CHECK-NEXT:       "end": {
839 // CHECK-NEXT:        "offset": 274,
840 // CHECK-NEXT:        "col": 36,
841 // CHECK-NEXT:        "tokLen": 1
842 // CHECK-NEXT:       }
843 // CHECK-NEXT:      },
844 // CHECK-NEXT:      "name": "s",
845 // CHECK-NEXT:      "type": {
846 // CHECK-NEXT:       "qualType": "const S &"
847 // CHECK-NEXT:      },
848 // CHECK-NEXT:      "init": "c",
849 // CHECK-NEXT:      "inner": [
850 // CHECK-NEXT:       {
851 // CHECK-NEXT:        "id": "0x{{.*}}",
852 // CHECK-NEXT:        "kind": "ExprWithCleanups",
853 // CHECK-NEXT:        "range": {
854 // CHECK-NEXT:         "begin": {
855 // CHECK-NEXT:          "offset": 272,
856 // CHECK-NEXT:          "col": 34,
857 // CHECK-NEXT:          "tokLen": 1
858 // CHECK-NEXT:         },
859 // CHECK-NEXT:         "end": {
860 // CHECK-NEXT:          "offset": 274,
861 // CHECK-NEXT:          "col": 36,
862 // CHECK-NEXT:          "tokLen": 1
863 // CHECK-NEXT:         }
864 // CHECK-NEXT:        },
865 // CHECK-NEXT:        "type": {
866 // CHECK-NEXT:         "qualType": "const S"
867 // CHECK-NEXT:        },
868 // CHECK-NEXT:        "valueCategory": "lvalue",
869 // CHECK-NEXT:        "cleanupsHaveSideEffects": true,
870 // CHECK-NEXT:        "inner": [
871 // CHECK-NEXT:         {
872 // CHECK-NEXT:          "id": "0x{{.*}}",
873 // CHECK-NEXT:          "kind": "MaterializeTemporaryExpr",
874 // CHECK-NEXT:          "range": {
875 // CHECK-NEXT:           "begin": {
876 // CHECK-NEXT:            "offset": 272,
877 // CHECK-NEXT:            "col": 34,
878 // CHECK-NEXT:            "tokLen": 1
879 // CHECK-NEXT:           },
880 // CHECK-NEXT:           "end": {
881 // CHECK-NEXT:            "offset": 274,
882 // CHECK-NEXT:            "col": 36,
883 // CHECK-NEXT:            "tokLen": 1
884 // CHECK-NEXT:           }
885 // CHECK-NEXT:          },
886 // CHECK-NEXT:          "type": {
887 // CHECK-NEXT:           "qualType": "const S"
888 // CHECK-NEXT:          },
889 // CHECK-NEXT:          "valueCategory": "lvalue",
890 // CHECK-NEXT:          "storageDuration": "full expression",
891 // CHECK-NEXT:          "boundToLValueRef": true,
892 // CHECK-NEXT:          "inner": [
893 // CHECK-NEXT:           {
894 // CHECK-NEXT:            "id": "0x{{.*}}",
895 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
896 // CHECK-NEXT:            "range": {
897 // CHECK-NEXT:             "begin": {
898 // CHECK-NEXT:              "offset": 272,
899 // CHECK-NEXT:              "col": 34,
900 // CHECK-NEXT:              "tokLen": 1
901 // CHECK-NEXT:             },
902 // CHECK-NEXT:             "end": {
903 // CHECK-NEXT:              "offset": 274,
904 // CHECK-NEXT:              "col": 36,
905 // CHECK-NEXT:              "tokLen": 1
906 // CHECK-NEXT:             }
907 // CHECK-NEXT:            },
908 // CHECK-NEXT:            "type": {
909 // CHECK-NEXT:             "qualType": "const S"
910 // CHECK-NEXT:            },
911 // CHECK-NEXT:            "valueCategory": "prvalue",
912 // CHECK-NEXT:            "castKind": "NoOp",
913 // CHECK-NEXT:            "inner": [
914 // CHECK-NEXT:             {
915 // CHECK-NEXT:              "id": "0x{{.*}}",
916 // CHECK-NEXT:              "kind": "CXXBindTemporaryExpr",
917 // CHECK-NEXT:              "range": {
918 // CHECK-NEXT:               "begin": {
919 // CHECK-NEXT:                "offset": 272,
920 // CHECK-NEXT:                "col": 34,
921 // CHECK-NEXT:                "tokLen": 1
922 // CHECK-NEXT:               },
923 // CHECK-NEXT:               "end": {
924 // CHECK-NEXT:                "offset": 274,
925 // CHECK-NEXT:                "col": 36,
926 // CHECK-NEXT:                "tokLen": 1
927 // CHECK-NEXT:               }
928 // CHECK-NEXT:              },
929 // CHECK-NEXT:              "type": {
930 // CHECK-NEXT:               "qualType": "S"
931 // CHECK-NEXT:              },
932 // CHECK-NEXT:              "valueCategory": "prvalue",
933 // CHECK-NEXT:              "temp": "0x{{.*}}",
934 // CHECK-NEXT:              "dtor": {
935 // CHECK-NEXT:               "id": "0x{{.*}}",
936 // CHECK-NEXT:               "kind": "CXXDestructorDecl",
937 // CHECK-NEXT:               "name": "~S",
938 // CHECK-NEXT:               "type": {
939 // CHECK-NEXT:                "qualType": "void () noexcept"
940 // CHECK-NEXT:               }
941 // CHECK-NEXT:              },
942 // CHECK-NEXT:              "inner": [
943 // CHECK-NEXT:               {
944 // CHECK-NEXT:                "id": "0x{{.*}}",
945 // CHECK-NEXT:                "kind": "CXXTemporaryObjectExpr",
946 // CHECK-NEXT:                "range": {
947 // CHECK-NEXT:                 "begin": {
948 // CHECK-NEXT:                  "offset": 272,
949 // CHECK-NEXT:                  "col": 34,
950 // CHECK-NEXT:                  "tokLen": 1
951 // CHECK-NEXT:                 },
952 // CHECK-NEXT:                 "end": {
953 // CHECK-NEXT:                  "offset": 274,
954 // CHECK-NEXT:                  "col": 36,
955 // CHECK-NEXT:                  "tokLen": 1
956 // CHECK-NEXT:                 }
957 // CHECK-NEXT:                },
958 // CHECK-NEXT:                "type": {
959 // CHECK-NEXT:                 "qualType": "S"
960 // CHECK-NEXT:                },
961 // CHECK-NEXT:                "valueCategory": "prvalue",
962 // CHECK-NEXT:                "ctorType": {
963 // CHECK-NEXT:                 "qualType": "void ()"
964 // CHECK-NEXT:                },
965 // CHECK-NEXT:                "hadMultipleCandidates": true,
966 // CHECK-NEXT:                "constructionKind": "complete"
967 // CHECK-NEXT:               }
968 // CHECK-NEXT:              ]
969 // CHECK-NEXT:             }
970 // CHECK-NEXT:            ]
971 // CHECK-NEXT:           }
972 // CHECK-NEXT:          ]
973 // CHECK-NEXT:         }
974 // CHECK-NEXT:        ]
975 // CHECK-NEXT:       }
976 // CHECK-NEXT:      ]
977 // CHECK-NEXT:     }
978 // CHECK-NEXT:    ]
979 // CHECK-NEXT:   },
980 // CHECK-NEXT:   {
981 // CHECK-NEXT:    "id": "0x{{.*}}",
982 // CHECK-NEXT:    "kind": "FunctionDecl",
983 // CHECK-NEXT:    "loc": {
984 // CHECK-NEXT:     "offset": 284,
985 // CHECK-NEXT:     "line": 13,
986 // CHECK-NEXT:     "col": 6,
987 // CHECK-NEXT:     "tokLen": 4
988 // CHECK-NEXT:    },
989 // CHECK-NEXT:    "range": {
990 // CHECK-NEXT:     "begin": {
991 // CHECK-NEXT:      "offset": 279,
992 // CHECK-NEXT:      "col": 1,
993 // CHECK-NEXT:      "tokLen": 4
994 // CHECK-NEXT:     },
995 // CHECK-NEXT:     "end": {
996 // CHECK-NEXT:      "offset": 321,
997 // CHECK-NEXT:      "line": 15,
998 // CHECK-NEXT:      "col": 1,
999 // CHECK-NEXT:      "tokLen": 1
1000 // CHECK-NEXT:     }
1001 // CHECK-NEXT:    },
1002 // CHECK-NEXT:    "name": "test",
1003 // CHECK-NEXT:    "mangledName": "_Z4testv",
1004 // CHECK-NEXT:    "type": {
1005 // CHECK-NEXT:     "qualType": "void ()"
1006 // CHECK-NEXT:    },
1007 // CHECK-NEXT:    "inner": [
1008 // CHECK-NEXT:     {
1009 // CHECK-NEXT:      "id": "0x{{.*}}",
1010 // CHECK-NEXT:      "kind": "CompoundStmt",
1011 // CHECK-NEXT:      "range": {
1012 // CHECK-NEXT:       "begin": {
1013 // CHECK-NEXT:        "offset": 291,
1014 // CHECK-NEXT:        "line": 13,
1015 // CHECK-NEXT:        "col": 13,
1016 // CHECK-NEXT:        "tokLen": 1
1017 // CHECK-NEXT:       },
1018 // CHECK-NEXT:       "end": {
1019 // CHECK-NEXT:        "offset": 321,
1020 // CHECK-NEXT:        "line": 15,
1021 // CHECK-NEXT:        "col": 1,
1022 // CHECK-NEXT:        "tokLen": 1
1023 // CHECK-NEXT:       }
1024 // CHECK-NEXT:      },
1025 // CHECK-NEXT:      "inner": [
1026 // CHECK-NEXT:       {
1027 // CHECK-NEXT:        "id": "0x{{.*}}",
1028 // CHECK-NEXT:        "kind": "CXXForRangeStmt",
1029 // CHECK-NEXT:        "range": {
1030 // CHECK-NEXT:         "begin": {
1031 // CHECK-NEXT:          "offset": 295,
1032 // CHECK-NEXT:          "line": 14,
1033 // CHECK-NEXT:          "col": 3,
1034 // CHECK-NEXT:          "tokLen": 3
1035 // CHECK-NEXT:         },
1036 // CHECK-NEXT:         "end": {
1037 // CHECK-NEXT:          "offset": 319,
1038 // CHECK-NEXT:          "col": 27,
1039 // CHECK-NEXT:          "tokLen": 1
1040 // CHECK-NEXT:         }
1041 // CHECK-NEXT:        },
1042 // CHECK-NEXT:        "inner": [
1043 // CHECK-NEXT:         {},
1044 // CHECK-NEXT:         {
1045 // CHECK-NEXT:          "id": "0x{{.*}}",
1046 // CHECK-NEXT:          "kind": "DeclStmt",
1047 // CHECK-NEXT:          "range": {
1048 // CHECK-NEXT:           "begin": {
1049 // CHECK-NEXT:            "offset": 309,
1050 // CHECK-NEXT:            "col": 17,
1051 // CHECK-NEXT:            "tokLen": 4
1052 // CHECK-NEXT:           },
1053 // CHECK-NEXT:           "end": {
1054 // CHECK-NEXT:            "offset": 309,
1055 // CHECK-NEXT:            "col": 17,
1056 // CHECK-NEXT:            "tokLen": 4
1057 // CHECK-NEXT:           }
1058 // CHECK-NEXT:          },
1059 // CHECK-NEXT:          "inner": [
1060 // CHECK-NEXT:           {
1061 // CHECK-NEXT:            "id": "0x{{.*}}",
1062 // CHECK-NEXT:            "kind": "VarDecl",
1063 // CHECK-NEXT:            "loc": {
1064 // CHECK-NEXT:             "offset": 309,
1065 // CHECK-NEXT:             "col": 17,
1066 // CHECK-NEXT:             "tokLen": 4
1067 // CHECK-NEXT:            },
1068 // CHECK-NEXT:            "range": {
1069 // CHECK-NEXT:             "begin": {
1070 // CHECK-NEXT:              "offset": 309,
1071 // CHECK-NEXT:              "col": 17,
1072 // CHECK-NEXT:              "tokLen": 4
1073 // CHECK-NEXT:             },
1074 // CHECK-NEXT:             "end": {
1075 // CHECK-NEXT:              "offset": 315,
1076 // CHECK-NEXT:              "col": 23,
1077 // CHECK-NEXT:              "tokLen": 1
1078 // CHECK-NEXT:             }
1079 // CHECK-NEXT:            },
1080 // CHECK-NEXT:            "isImplicit": true,
1081 // CHECK-NEXT:            "isUsed": true,
1082 // CHECK-NEXT:            "name": "__range1",
1083 // CHECK-NEXT:            "type": {
1084 // CHECK-NEXT:             "qualType": "S &&"
1085 // CHECK-NEXT:            },
1086 // CHECK-NEXT:            "init": "c",
1087 // CHECK-NEXT:            "inner": [
1088 // CHECK-NEXT:             {
1089 // CHECK-NEXT:              "id": "0x{{.*}}",
1090 // CHECK-NEXT:              "kind": "ExprWithCleanups",
1091 // CHECK-NEXT:              "range": {
1092 // CHECK-NEXT:               "begin": {
1093 // CHECK-NEXT:                "offset": 309,
1094 // CHECK-NEXT:                "col": 17,
1095 // CHECK-NEXT:                "tokLen": 4
1096 // CHECK-NEXT:               },
1097 // CHECK-NEXT:               "end": {
1098 // CHECK-NEXT:                "offset": 315,
1099 // CHECK-NEXT:                "col": 23,
1100 // CHECK-NEXT:                "tokLen": 1
1101 // CHECK-NEXT:               }
1102 // CHECK-NEXT:              },
1103 // CHECK-NEXT:              "type": {
1104 // CHECK-NEXT:               "qualType": "S"
1105 // CHECK-NEXT:              },
1106 // CHECK-NEXT:              "valueCategory": "xvalue",
1107 // CHECK-NEXT:              "cleanupsHaveSideEffects": true,
1108 // CHECK-NEXT:              "inner": [
1109 // CHECK-NEXT:               {
1110 // CHECK-NEXT:                "id": "0x{{.*}}",
1111 // CHECK-NEXT:                "kind": "MaterializeTemporaryExpr",
1112 // CHECK-NEXT:                "range": {
1113 // CHECK-NEXT:                 "begin": {
1114 // CHECK-NEXT:                  "offset": 309,
1115 // CHECK-NEXT:                  "col": 17,
1116 // CHECK-NEXT:                  "tokLen": 4
1117 // CHECK-NEXT:                 },
1118 // CHECK-NEXT:                 "end": {
1119 // CHECK-NEXT:                  "offset": 315,
1120 // CHECK-NEXT:                  "col": 23,
1121 // CHECK-NEXT:                  "tokLen": 1
1122 // CHECK-NEXT:                 }
1123 // CHECK-NEXT:                },
1124 // CHECK-NEXT:                "type": {
1125 // CHECK-NEXT:                 "qualType": "S"
1126 // CHECK-NEXT:                },
1127 // CHECK-NEXT:                "valueCategory": "xvalue",
1128 // CHECK-NEXT:                "extendingDecl": {
1129 // CHECK-NEXT:                 "id": "0x{{.*}}",
1130 // CHECK-NEXT:                 "kind": "VarDecl",
1131 // CHECK-NEXT:                 "name": "__range1",
1132 // CHECK-NEXT:                 "type": {
1133 // CHECK-NEXT:                  "qualType": "S &&"
1134 // CHECK-NEXT:                 }
1135 // CHECK-NEXT:                },
1136 // CHECK-NEXT:                "storageDuration": "automatic",
1137 // CHECK-NEXT:                "inner": [
1138 // CHECK-NEXT:                 {
1139 // CHECK-NEXT:                  "id": "0x{{.*}}",
1140 // CHECK-NEXT:                  "kind": "CXXBindTemporaryExpr",
1141 // CHECK-NEXT:                  "range": {
1142 // CHECK-NEXT:                   "begin": {
1143 // CHECK-NEXT:                    "offset": 309,
1144 // CHECK-NEXT:                    "col": 17,
1145 // CHECK-NEXT:                    "tokLen": 4
1146 // CHECK-NEXT:                   },
1147 // CHECK-NEXT:                   "end": {
1148 // CHECK-NEXT:                    "offset": 315,
1149 // CHECK-NEXT:                    "col": 23,
1150 // CHECK-NEXT:                    "tokLen": 1
1151 // CHECK-NEXT:                   }
1152 // CHECK-NEXT:                  },
1153 // CHECK-NEXT:                  "type": {
1154 // CHECK-NEXT:                   "qualType": "S"
1155 // CHECK-NEXT:                  },
1156 // CHECK-NEXT:                  "valueCategory": "prvalue",
1157 // CHECK-NEXT:                  "temp": "0x{{.*}}",
1158 // CHECK-NEXT:                  "dtor": {
1159 // CHECK-NEXT:                   "id": "0x{{.*}}",
1160 // CHECK-NEXT:                   "kind": "CXXDestructorDecl",
1161 // CHECK-NEXT:                   "name": "~S",
1162 // CHECK-NEXT:                   "type": {
1163 // CHECK-NEXT:                    "qualType": "void () noexcept"
1164 // CHECK-NEXT:                   }
1165 // CHECK-NEXT:                  },
1166 // CHECK-NEXT:                  "inner": [
1167 // CHECK-NEXT:                   {
1168 // CHECK-NEXT:                    "id": "0x{{.*}}",
1169 // CHECK-NEXT:                    "kind": "CallExpr",
1170 // CHECK-NEXT:                    "range": {
1171 // CHECK-NEXT:                     "begin": {
1172 // CHECK-NEXT:                      "offset": 309,
1173 // CHECK-NEXT:                      "col": 17,
1174 // CHECK-NEXT:                      "tokLen": 4
1175 // CHECK-NEXT:                     },
1176 // CHECK-NEXT:                     "end": {
1177 // CHECK-NEXT:                      "offset": 315,
1178 // CHECK-NEXT:                      "col": 23,
1179 // CHECK-NEXT:                      "tokLen": 1
1180 // CHECK-NEXT:                     }
1181 // CHECK-NEXT:                    },
1182 // CHECK-NEXT:                    "type": {
1183 // CHECK-NEXT:                     "qualType": "S"
1184 // CHECK-NEXT:                    },
1185 // CHECK-NEXT:                    "valueCategory": "prvalue",
1186 // CHECK-NEXT:                    "inner": [
1187 // CHECK-NEXT:                     {
1188 // CHECK-NEXT:                      "id": "0x{{.*}}",
1189 // CHECK-NEXT:                      "kind": "ImplicitCastExpr",
1190 // CHECK-NEXT:                      "range": {
1191 // CHECK-NEXT:                       "begin": {
1192 // CHECK-NEXT:                        "offset": 309,
1193 // CHECK-NEXT:                        "col": 17,
1194 // CHECK-NEXT:                        "tokLen": 4
1195 // CHECK-NEXT:                       },
1196 // CHECK-NEXT:                       "end": {
1197 // CHECK-NEXT:                        "offset": 309,
1198 // CHECK-NEXT:                        "col": 17,
1199 // CHECK-NEXT:                        "tokLen": 4
1200 // CHECK-NEXT:                       }
1201 // CHECK-NEXT:                      },
1202 // CHECK-NEXT:                      "type": {
1203 // CHECK-NEXT:                       "qualType": "S (*)(const int &, const S &)"
1204 // CHECK-NEXT:                      },
1205 // CHECK-NEXT:                      "valueCategory": "prvalue",
1206 // CHECK-NEXT:                      "castKind": "FunctionToPointerDecay",
1207 // CHECK-NEXT:                      "inner": [
1208 // CHECK-NEXT:                       {
1209 // CHECK-NEXT:                        "id": "0x{{.*}}",
1210 // CHECK-NEXT:                        "kind": "DeclRefExpr",
1211 // CHECK-NEXT:                        "range": {
1212 // CHECK-NEXT:                         "begin": {
1213 // CHECK-NEXT:                          "offset": 309,
1214 // CHECK-NEXT:                          "col": 17,
1215 // CHECK-NEXT:                          "tokLen": 4
1216 // CHECK-NEXT:                         },
1217 // CHECK-NEXT:                         "end": {
1218 // CHECK-NEXT:                          "offset": 309,
1219 // CHECK-NEXT:                          "col": 17,
1220 // CHECK-NEXT:                          "tokLen": 4
1221 // CHECK-NEXT:                         }
1222 // CHECK-NEXT:                        },
1223 // CHECK-NEXT:                        "type": {
1224 // CHECK-NEXT:                         "qualType": "S (const int &, const S &)"
1225 // CHECK-NEXT:                        },
1226 // CHECK-NEXT:                        "valueCategory": "lvalue",
1227 // CHECK-NEXT:                        "referencedDecl": {
1228 // CHECK-NEXT:                         "id": "0x{{.*}}",
1229 // CHECK-NEXT:                         "kind": "FunctionDecl",
1230 // CHECK-NEXT:                         "name": "func",
1231 // CHECK-NEXT:                         "type": {
1232 // CHECK-NEXT:                          "qualType": "S (const int &, const S &)"
1233 // CHECK-NEXT:                         }
1234 // CHECK-NEXT:                        }
1235 // CHECK-NEXT:                       }
1236 // CHECK-NEXT:                      ]
1237 // CHECK-NEXT:                     },
1238 // CHECK-NEXT:                     {
1239 // CHECK-NEXT:                      "id": "0x{{.*}}",
1240 // CHECK-NEXT:                      "kind": "MaterializeTemporaryExpr",
1241 // CHECK-NEXT:                      "range": {
1242 // CHECK-NEXT:                       "begin": {
1243 // CHECK-NEXT:                        "offset": 314,
1244 // CHECK-NEXT:                        "col": 22,
1245 // CHECK-NEXT:                        "tokLen": 1
1246 // CHECK-NEXT:                       },
1247 // CHECK-NEXT:                       "end": {
1248 // CHECK-NEXT:                        "offset": 314,
1249 // CHECK-NEXT:                        "col": 22,
1250 // CHECK-NEXT:                        "tokLen": 1
1251 // CHECK-NEXT:                       }
1252 // CHECK-NEXT:                      },
1253 // CHECK-NEXT:                      "type": {
1254 // CHECK-NEXT:                       "qualType": "const int"
1255 // CHECK-NEXT:                      },
1256 // CHECK-NEXT:                      "valueCategory": "lvalue",
1257 // CHECK-NEXT:                      "extendingDecl": {
1258 // CHECK-NEXT:                       "id": "0x{{.*}}",
1259 // CHECK-NEXT:                       "kind": "VarDecl",
1260 // CHECK-NEXT:                       "name": "__range1",
1261 // CHECK-NEXT:                       "type": {
1262 // CHECK-NEXT:                        "qualType": "S &&"
1263 // CHECK-NEXT:                       }
1264 // CHECK-NEXT:                      },
1265 // CHECK-NEXT:                      "storageDuration": "automatic",
1266 // CHECK-NEXT:                      "boundToLValueRef": true,
1267 // CHECK-NEXT:                      "inner": [
1268 // CHECK-NEXT:                       {
1269 // CHECK-NEXT:                        "id": "0x{{.*}}",
1270 // CHECK-NEXT:                        "kind": "ImplicitCastExpr",
1271 // CHECK-NEXT:                        "range": {
1272 // CHECK-NEXT:                         "begin": {
1273 // CHECK-NEXT:                          "offset": 314,
1274 // CHECK-NEXT:                          "col": 22,
1275 // CHECK-NEXT:                          "tokLen": 1
1276 // CHECK-NEXT:                         },
1277 // CHECK-NEXT:                         "end": {
1278 // CHECK-NEXT:                          "offset": 314,
1279 // CHECK-NEXT:                          "col": 22,
1280 // CHECK-NEXT:                          "tokLen": 1
1281 // CHECK-NEXT:                         }
1282 // CHECK-NEXT:                        },
1283 // CHECK-NEXT:                        "type": {
1284 // CHECK-NEXT:                         "qualType": "const int"
1285 // CHECK-NEXT:                        },
1286 // CHECK-NEXT:                        "valueCategory": "prvalue",
1287 // CHECK-NEXT:                        "castKind": "NoOp",
1288 // CHECK-NEXT:                        "inner": [
1289 // CHECK-NEXT:                         {
1290 // CHECK-NEXT:                          "id": "0x{{.*}}",
1291 // CHECK-NEXT:                          "kind": "IntegerLiteral",
1292 // CHECK-NEXT:                          "range": {
1293 // CHECK-NEXT:                           "begin": {
1294 // CHECK-NEXT:                            "offset": 314,
1295 // CHECK-NEXT:                            "col": 22,
1296 // CHECK-NEXT:                            "tokLen": 1
1297 // CHECK-NEXT:                           },
1298 // CHECK-NEXT:                           "end": {
1299 // CHECK-NEXT:                            "offset": 314,
1300 // CHECK-NEXT:                            "col": 22,
1301 // CHECK-NEXT:                            "tokLen": 1
1302 // CHECK-NEXT:                           }
1303 // CHECK-NEXT:                          },
1304 // CHECK-NEXT:                          "type": {
1305 // CHECK-NEXT:                           "qualType": "int"
1306 // CHECK-NEXT:                          },
1307 // CHECK-NEXT:                          "valueCategory": "prvalue",
1308 // CHECK-NEXT:                          "value": "1"
1309 // CHECK-NEXT:                         }
1310 // CHECK-NEXT:                        ]
1311 // CHECK-NEXT:                       }
1312 // CHECK-NEXT:                      ]
1313 // CHECK-NEXT:                     },
1314 // CHECK-NEXT:                     {
1315 // CHECK-NEXT:                      "id": "0x{{.*}}",
1316 // CHECK-NEXT:                      "kind": "CXXDefaultArgExpr",
1317 // CHECK-NEXT:                      "range": {
1318 // CHECK-NEXT:                       "begin": {},
1319 // CHECK-NEXT:                       "end": {}
1320 // CHECK-NEXT:                      },
1321 // CHECK-NEXT:                      "type": {
1322 // CHECK-NEXT:                       "qualType": "const S"
1323 // CHECK-NEXT:                      },
1324 // CHECK-NEXT:                      "valueCategory": "lvalue",
1325 // CHECK-NEXT:                      "hasRewrittenInit": true,
1326 // CHECK-NEXT:                      "inner": [
1327 // CHECK-NEXT:                       {
1328 // CHECK-NEXT:                        "id": "0x{{.*}}",
1329 // CHECK-NEXT:                        "kind": "MaterializeTemporaryExpr",
1330 // CHECK-NEXT:                        "range": {
1331 // CHECK-NEXT:                         "begin": {
1332 // CHECK-NEXT:                          "offset": 272,
1333 // CHECK-NEXT:                          "line": 11,
1334 // CHECK-NEXT:                          "col": 34,
1335 // CHECK-NEXT:                          "tokLen": 1
1336 // CHECK-NEXT:                         },
1337 // CHECK-NEXT:                         "end": {
1338 // CHECK-NEXT:                          "offset": 274,
1339 // CHECK-NEXT:                          "col": 36,
1340 // CHECK-NEXT:                          "tokLen": 1
1341 // CHECK-NEXT:                         }
1342 // CHECK-NEXT:                        },
1343 // CHECK-NEXT:                        "type": {
1344 // CHECK-NEXT:                         "qualType": "const S"
1345 // CHECK-NEXT:                        },
1346 // CHECK-NEXT:                        "valueCategory": "lvalue",
1347 // CHECK-NEXT:                        "extendingDecl": {
1348 // CHECK-NEXT:                         "id": "0x{{.*}}",
1349 // CHECK-NEXT:                         "kind": "VarDecl",
1350 // CHECK-NEXT:                         "name": "__range1",
1351 // CHECK-NEXT:                         "type": {
1352 // CHECK-NEXT:                          "qualType": "S &&"
1353 // CHECK-NEXT:                         }
1354 // CHECK-NEXT:                        },
1355 // CHECK-NEXT:                        "storageDuration": "automatic",
1356 // CHECK-NEXT:                        "boundToLValueRef": true,
1357 // CHECK-NEXT:                        "inner": [
1358 // CHECK-NEXT:                         {
1359 // CHECK-NEXT:                          "id": "0x{{.*}}",
1360 // CHECK-NEXT:                          "kind": "ImplicitCastExpr",
1361 // CHECK-NEXT:                          "range": {
1362 // CHECK-NEXT:                           "begin": {
1363 // CHECK-NEXT:                            "offset": 272,
1364 // CHECK-NEXT:                            "col": 34,
1365 // CHECK-NEXT:                            "tokLen": 1
1366 // CHECK-NEXT:                           },
1367 // CHECK-NEXT:                           "end": {
1368 // CHECK-NEXT:                            "offset": 274,
1369 // CHECK-NEXT:                            "col": 36,
1370 // CHECK-NEXT:                            "tokLen": 1
1371 // CHECK-NEXT:                           }
1372 // CHECK-NEXT:                          },
1373 // CHECK-NEXT:                          "type": {
1374 // CHECK-NEXT:                           "qualType": "const S"
1375 // CHECK-NEXT:                          },
1376 // CHECK-NEXT:                          "valueCategory": "prvalue",
1377 // CHECK-NEXT:                          "castKind": "NoOp",
1378 // CHECK-NEXT:                          "inner": [
1379 // CHECK-NEXT:                           {
1380 // CHECK-NEXT:                            "id": "0x{{.*}}",
1381 // CHECK-NEXT:                            "kind": "CXXBindTemporaryExpr",
1382 // CHECK-NEXT:                            "range": {
1383 // CHECK-NEXT:                             "begin": {
1384 // CHECK-NEXT:                              "offset": 272,
1385 // CHECK-NEXT:                              "col": 34,
1386 // CHECK-NEXT:                              "tokLen": 1
1387 // CHECK-NEXT:                             },
1388 // CHECK-NEXT:                             "end": {
1389 // CHECK-NEXT:                              "offset": 274,
1390 // CHECK-NEXT:                              "col": 36,
1391 // CHECK-NEXT:                              "tokLen": 1
1392 // CHECK-NEXT:                             }
1393 // CHECK-NEXT:                            },
1394 // CHECK-NEXT:                            "type": {
1395 // CHECK-NEXT:                             "qualType": "S"
1396 // CHECK-NEXT:                            },
1397 // CHECK-NEXT:                            "valueCategory": "prvalue",
1398 // CHECK-NEXT:                            "temp": "0x{{.*}}",
1399 // CHECK-NEXT:                            "dtor": {
1400 // CHECK-NEXT:                             "id": "0x{{.*}}",
1401 // CHECK-NEXT:                             "kind": "CXXDestructorDecl",
1402 // CHECK-NEXT:                             "name": "~S",
1403 // CHECK-NEXT:                             "type": {
1404 // CHECK-NEXT:                              "qualType": "void () noexcept"
1405 // CHECK-NEXT:                             }
1406 // CHECK-NEXT:                            },
1407 // CHECK-NEXT:                            "inner": [
1408 // CHECK-NEXT:                             {
1409 // CHECK-NEXT:                              "id": "0x{{.*}}",
1410 // CHECK-NEXT:                              "kind": "CXXTemporaryObjectExpr",
1411 // CHECK-NEXT:                              "range": {
1412 // CHECK-NEXT:                               "begin": {
1413 // CHECK-NEXT:                                "offset": 272,
1414 // CHECK-NEXT:                                "col": 34,
1415 // CHECK-NEXT:                                "tokLen": 1
1416 // CHECK-NEXT:                               },
1417 // CHECK-NEXT:                               "end": {
1418 // CHECK-NEXT:                                "offset": 274,
1419 // CHECK-NEXT:                                "col": 36,
1420 // CHECK-NEXT:                                "tokLen": 1
1421 // CHECK-NEXT:                               }
1422 // CHECK-NEXT:                              },
1423 // CHECK-NEXT:                              "type": {
1424 // CHECK-NEXT:                               "qualType": "S"
1425 // CHECK-NEXT:                              },
1426 // CHECK-NEXT:                              "valueCategory": "prvalue",
1427 // CHECK-NEXT:                              "ctorType": {
1428 // CHECK-NEXT:                               "qualType": "void ()"
1429 // CHECK-NEXT:                              },
1430 // CHECK-NEXT:                              "hadMultipleCandidates": true,
1431 // CHECK-NEXT:                              "constructionKind": "complete"
1432 // CHECK-NEXT:                             }
1433 // CHECK-NEXT:                            ]
1434 // CHECK-NEXT:                           }
1435 // CHECK-NEXT:                          ]
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:                 }
1445 // CHECK-NEXT:                ]
1446 // CHECK-NEXT:               }
1447 // CHECK-NEXT:              ]
1448 // CHECK-NEXT:             }
1449 // CHECK-NEXT:            ]
1450 // CHECK-NEXT:           }
1451 // CHECK-NEXT:          ]
1452 // CHECK-NEXT:         },
1453 // CHECK-NEXT:         {
1454 // CHECK-NEXT:          "id": "0x{{.*}}",
1455 // CHECK-NEXT:          "kind": "DeclStmt",
1456 // CHECK-NEXT:          "range": {
1457 // CHECK-NEXT:           "begin": {
1458 // CHECK-NEXT:            "offset": 307,
1459 // CHECK-NEXT:            "line": 14,
1460 // CHECK-NEXT:            "col": 15,
1461 // CHECK-NEXT:            "tokLen": 1
1462 // CHECK-NEXT:           },
1463 // CHECK-NEXT:           "end": {
1464 // CHECK-NEXT:            "offset": 307,
1465 // CHECK-NEXT:            "col": 15,
1466 // CHECK-NEXT:            "tokLen": 1
1467 // CHECK-NEXT:           }
1468 // CHECK-NEXT:          },
1469 // CHECK-NEXT:          "inner": [
1470 // CHECK-NEXT:           {
1471 // CHECK-NEXT:            "id": "0x{{.*}}",
1472 // CHECK-NEXT:            "kind": "VarDecl",
1473 // CHECK-NEXT:            "loc": {
1474 // CHECK-NEXT:             "offset": 307,
1475 // CHECK-NEXT:             "col": 15,
1476 // CHECK-NEXT:             "tokLen": 1
1477 // CHECK-NEXT:            },
1478 // CHECK-NEXT:            "range": {
1479 // CHECK-NEXT:             "begin": {
1480 // CHECK-NEXT:              "offset": 307,
1481 // CHECK-NEXT:              "col": 15,
1482 // CHECK-NEXT:              "tokLen": 1
1483 // CHECK-NEXT:             },
1484 // CHECK-NEXT:             "end": {
1485 // CHECK-NEXT:              "offset": 307,
1486 // CHECK-NEXT:              "col": 15,
1487 // CHECK-NEXT:              "tokLen": 1
1488 // CHECK-NEXT:             }
1489 // CHECK-NEXT:            },
1490 // CHECK-NEXT:            "isImplicit": true,
1491 // CHECK-NEXT:            "isUsed": true,
1492 // CHECK-NEXT:            "name": "__begin1",
1493 // CHECK-NEXT:            "type": {
1494 // CHECK-NEXT:             "qualType": "const int *"
1495 // CHECK-NEXT:            },
1496 // CHECK-NEXT:            "init": "c",
1497 // CHECK-NEXT:            "inner": [
1498 // CHECK-NEXT:             {
1499 // CHECK-NEXT:              "id": "0x{{.*}}",
1500 // CHECK-NEXT:              "kind": "CXXMemberCallExpr",
1501 // CHECK-NEXT:              "range": {
1502 // CHECK-NEXT:               "begin": {
1503 // CHECK-NEXT:                "offset": 307,
1504 // CHECK-NEXT:                "col": 15,
1505 // CHECK-NEXT:                "tokLen": 1
1506 // CHECK-NEXT:               },
1507 // CHECK-NEXT:               "end": {
1508 // CHECK-NEXT:                "offset": 307,
1509 // CHECK-NEXT:                "col": 15,
1510 // CHECK-NEXT:                "tokLen": 1
1511 // CHECK-NEXT:               }
1512 // CHECK-NEXT:              },
1513 // CHECK-NEXT:              "type": {
1514 // CHECK-NEXT:               "qualType": "const int *"
1515 // CHECK-NEXT:              },
1516 // CHECK-NEXT:              "valueCategory": "prvalue",
1517 // CHECK-NEXT:              "inner": [
1518 // CHECK-NEXT:               {
1519 // CHECK-NEXT:                "id": "0x{{.*}}",
1520 // CHECK-NEXT:                "kind": "MemberExpr",
1521 // CHECK-NEXT:                "range": {
1522 // CHECK-NEXT:                 "begin": {
1523 // CHECK-NEXT:                  "offset": 307,
1524 // CHECK-NEXT:                  "col": 15,
1525 // CHECK-NEXT:                  "tokLen": 1
1526 // CHECK-NEXT:                 },
1527 // CHECK-NEXT:                 "end": {
1528 // CHECK-NEXT:                  "offset": 307,
1529 // CHECK-NEXT:                  "col": 15,
1530 // CHECK-NEXT:                  "tokLen": 1
1531 // CHECK-NEXT:                 }
1532 // CHECK-NEXT:                },
1533 // CHECK-NEXT:                "type": {
1534 // CHECK-NEXT:                 "qualType": "<bound member function type>"
1535 // CHECK-NEXT:                },
1536 // CHECK-NEXT:                "valueCategory": "prvalue",
1537 // CHECK-NEXT:                "name": "begin",
1538 // CHECK-NEXT:                "isArrow": false,
1539 // CHECK-NEXT:                "referencedMemberDecl": "0x{{.*}}",
1540 // CHECK-NEXT:                "inner": [
1541 // CHECK-NEXT:                 {
1542 // CHECK-NEXT:                  "id": "0x{{.*}}",
1543 // CHECK-NEXT:                  "kind": "ImplicitCastExpr",
1544 // CHECK-NEXT:                  "range": {
1545 // CHECK-NEXT:                   "begin": {
1546 // CHECK-NEXT:                    "offset": 307,
1547 // CHECK-NEXT:                    "col": 15,
1548 // CHECK-NEXT:                    "tokLen": 1
1549 // CHECK-NEXT:                   },
1550 // CHECK-NEXT:                   "end": {
1551 // CHECK-NEXT:                    "offset": 307,
1552 // CHECK-NEXT:                    "col": 15,
1553 // CHECK-NEXT:                    "tokLen": 1
1554 // CHECK-NEXT:                   }
1555 // CHECK-NEXT:                  },
1556 // CHECK-NEXT:                  "type": {
1557 // CHECK-NEXT:                   "qualType": "const S"
1558 // CHECK-NEXT:                  },
1559 // CHECK-NEXT:                  "valueCategory": "lvalue",
1560 // CHECK-NEXT:                  "castKind": "NoOp",
1561 // CHECK-NEXT:                  "inner": [
1562 // CHECK-NEXT:                   {
1563 // CHECK-NEXT:                    "id": "0x{{.*}}",
1564 // CHECK-NEXT:                    "kind": "DeclRefExpr",
1565 // CHECK-NEXT:                    "range": {
1566 // CHECK-NEXT:                     "begin": {
1567 // CHECK-NEXT:                      "offset": 307,
1568 // CHECK-NEXT:                      "col": 15,
1569 // CHECK-NEXT:                      "tokLen": 1
1570 // CHECK-NEXT:                     },
1571 // CHECK-NEXT:                     "end": {
1572 // CHECK-NEXT:                      "offset": 307,
1573 // CHECK-NEXT:                      "col": 15,
1574 // CHECK-NEXT:                      "tokLen": 1
1575 // CHECK-NEXT:                     }
1576 // CHECK-NEXT:                    },
1577 // CHECK-NEXT:                    "type": {
1578 // CHECK-NEXT:                     "qualType": "S"
1579 // CHECK-NEXT:                    },
1580 // CHECK-NEXT:                    "valueCategory": "lvalue",
1581 // CHECK-NEXT:                    "referencedDecl": {
1582 // CHECK-NEXT:                     "id": "0x{{.*}}",
1583 // CHECK-NEXT:                     "kind": "VarDecl",
1584 // CHECK-NEXT:                     "name": "__range1",
1585 // CHECK-NEXT:                     "type": {
1586 // CHECK-NEXT:                      "qualType": "S &&"
1587 // CHECK-NEXT:                     }
1588 // CHECK-NEXT:                    }
1589 // CHECK-NEXT:                   }
1590 // CHECK-NEXT:                  ]
1591 // CHECK-NEXT:                 }
1592 // CHECK-NEXT:                ]
1593 // CHECK-NEXT:               }
1594 // CHECK-NEXT:              ]
1595 // CHECK-NEXT:             }
1596 // CHECK-NEXT:            ]
1597 // CHECK-NEXT:           }
1598 // CHECK-NEXT:          ]
1599 // CHECK-NEXT:         },
1600 // CHECK-NEXT:         {
1601 // CHECK-NEXT:          "id": "0x{{.*}}",
1602 // CHECK-NEXT:          "kind": "DeclStmt",
1603 // CHECK-NEXT:          "range": {
1604 // CHECK-NEXT:           "begin": {
1605 // CHECK-NEXT:            "offset": 307,
1606 // CHECK-NEXT:            "col": 15,
1607 // CHECK-NEXT:            "tokLen": 1
1608 // CHECK-NEXT:           },
1609 // CHECK-NEXT:           "end": {
1610 // CHECK-NEXT:            "offset": 307,
1611 // CHECK-NEXT:            "col": 15,
1612 // CHECK-NEXT:            "tokLen": 1
1613 // CHECK-NEXT:           }
1614 // CHECK-NEXT:          },
1615 // CHECK-NEXT:          "inner": [
1616 // CHECK-NEXT:           {
1617 // CHECK-NEXT:            "id": "0x{{.*}}",
1618 // CHECK-NEXT:            "kind": "VarDecl",
1619 // CHECK-NEXT:            "loc": {
1620 // CHECK-NEXT:             "offset": 307,
1621 // CHECK-NEXT:             "col": 15,
1622 // CHECK-NEXT:             "tokLen": 1
1623 // CHECK-NEXT:            },
1624 // CHECK-NEXT:            "range": {
1625 // CHECK-NEXT:             "begin": {
1626 // CHECK-NEXT:              "offset": 307,
1627 // CHECK-NEXT:              "col": 15,
1628 // CHECK-NEXT:              "tokLen": 1
1629 // CHECK-NEXT:             },
1630 // CHECK-NEXT:             "end": {
1631 // CHECK-NEXT:              "offset": 307,
1632 // CHECK-NEXT:              "col": 15,
1633 // CHECK-NEXT:              "tokLen": 1
1634 // CHECK-NEXT:             }
1635 // CHECK-NEXT:            },
1636 // CHECK-NEXT:            "isImplicit": true,
1637 // CHECK-NEXT:            "isUsed": true,
1638 // CHECK-NEXT:            "name": "__end1",
1639 // CHECK-NEXT:            "type": {
1640 // CHECK-NEXT:             "qualType": "const int *"
1641 // CHECK-NEXT:            },
1642 // CHECK-NEXT:            "init": "c",
1643 // CHECK-NEXT:            "inner": [
1644 // CHECK-NEXT:             {
1645 // CHECK-NEXT:              "id": "0x{{.*}}",
1646 // CHECK-NEXT:              "kind": "CXXMemberCallExpr",
1647 // CHECK-NEXT:              "range": {
1648 // CHECK-NEXT:               "begin": {
1649 // CHECK-NEXT:                "offset": 307,
1650 // CHECK-NEXT:                "col": 15,
1651 // CHECK-NEXT:                "tokLen": 1
1652 // CHECK-NEXT:               },
1653 // CHECK-NEXT:               "end": {
1654 // CHECK-NEXT:                "offset": 307,
1655 // CHECK-NEXT:                "col": 15,
1656 // CHECK-NEXT:                "tokLen": 1
1657 // CHECK-NEXT:               }
1658 // CHECK-NEXT:              },
1659 // CHECK-NEXT:              "type": {
1660 // CHECK-NEXT:               "qualType": "const int *"
1661 // CHECK-NEXT:              },
1662 // CHECK-NEXT:              "valueCategory": "prvalue",
1663 // CHECK-NEXT:              "inner": [
1664 // CHECK-NEXT:               {
1665 // CHECK-NEXT:                "id": "0x{{.*}}",
1666 // CHECK-NEXT:                "kind": "MemberExpr",
1667 // CHECK-NEXT:                "range": {
1668 // CHECK-NEXT:                 "begin": {
1669 // CHECK-NEXT:                  "offset": 307,
1670 // CHECK-NEXT:                  "col": 15,
1671 // CHECK-NEXT:                  "tokLen": 1
1672 // CHECK-NEXT:                 },
1673 // CHECK-NEXT:                 "end": {
1674 // CHECK-NEXT:                  "offset": 307,
1675 // CHECK-NEXT:                  "col": 15,
1676 // CHECK-NEXT:                  "tokLen": 1
1677 // CHECK-NEXT:                 }
1678 // CHECK-NEXT:                },
1679 // CHECK-NEXT:                "type": {
1680 // CHECK-NEXT:                 "qualType": "<bound member function type>"
1681 // CHECK-NEXT:                },
1682 // CHECK-NEXT:                "valueCategory": "prvalue",
1683 // CHECK-NEXT:                "name": "end",
1684 // CHECK-NEXT:                "isArrow": false,
1685 // CHECK-NEXT:                "referencedMemberDecl": "0x{{.*}}",
1686 // CHECK-NEXT:                "inner": [
1687 // CHECK-NEXT:                 {
1688 // CHECK-NEXT:                  "id": "0x{{.*}}",
1689 // CHECK-NEXT:                  "kind": "ImplicitCastExpr",
1690 // CHECK-NEXT:                  "range": {
1691 // CHECK-NEXT:                   "begin": {
1692 // CHECK-NEXT:                    "offset": 307,
1693 // CHECK-NEXT:                    "col": 15,
1694 // CHECK-NEXT:                    "tokLen": 1
1695 // CHECK-NEXT:                   },
1696 // CHECK-NEXT:                   "end": {
1697 // CHECK-NEXT:                    "offset": 307,
1698 // CHECK-NEXT:                    "col": 15,
1699 // CHECK-NEXT:                    "tokLen": 1
1700 // CHECK-NEXT:                   }
1701 // CHECK-NEXT:                  },
1702 // CHECK-NEXT:                  "type": {
1703 // CHECK-NEXT:                   "qualType": "const S"
1704 // CHECK-NEXT:                  },
1705 // CHECK-NEXT:                  "valueCategory": "lvalue",
1706 // CHECK-NEXT:                  "castKind": "NoOp",
1707 // CHECK-NEXT:                  "inner": [
1708 // CHECK-NEXT:                   {
1709 // CHECK-NEXT:                    "id": "0x{{.*}}",
1710 // CHECK-NEXT:                    "kind": "DeclRefExpr",
1711 // CHECK-NEXT:                    "range": {
1712 // CHECK-NEXT:                     "begin": {
1713 // CHECK-NEXT:                      "offset": 307,
1714 // CHECK-NEXT:                      "col": 15,
1715 // CHECK-NEXT:                      "tokLen": 1
1716 // CHECK-NEXT:                     },
1717 // CHECK-NEXT:                     "end": {
1718 // CHECK-NEXT:                      "offset": 307,
1719 // CHECK-NEXT:                      "col": 15,
1720 // CHECK-NEXT:                      "tokLen": 1
1721 // CHECK-NEXT:                     }
1722 // CHECK-NEXT:                    },
1723 // CHECK-NEXT:                    "type": {
1724 // CHECK-NEXT:                     "qualType": "S"
1725 // CHECK-NEXT:                    },
1726 // CHECK-NEXT:                    "valueCategory": "lvalue",
1727 // CHECK-NEXT:                    "referencedDecl": {
1728 // CHECK-NEXT:                     "id": "0x{{.*}}",
1729 // CHECK-NEXT:                     "kind": "VarDecl",
1730 // CHECK-NEXT:                     "name": "__range1",
1731 // CHECK-NEXT:                     "type": {
1732 // CHECK-NEXT:                      "qualType": "S &&"
1733 // CHECK-NEXT:                     }
1734 // CHECK-NEXT:                    }
1735 // CHECK-NEXT:                   }
1736 // CHECK-NEXT:                  ]
1737 // CHECK-NEXT:                 }
1738 // CHECK-NEXT:                ]
1739 // CHECK-NEXT:               }
1740 // CHECK-NEXT:              ]
1741 // CHECK-NEXT:             }
1742 // CHECK-NEXT:            ]
1743 // CHECK-NEXT:           }
1744 // CHECK-NEXT:          ]
1745 // CHECK-NEXT:         },
1746 // CHECK-NEXT:         {
1747 // CHECK-NEXT:          "id": "0x{{.*}}",
1748 // CHECK-NEXT:          "kind": "BinaryOperator",
1749 // CHECK-NEXT:          "range": {
1750 // CHECK-NEXT:           "begin": {
1751 // CHECK-NEXT:            "offset": 307,
1752 // CHECK-NEXT:            "col": 15,
1753 // CHECK-NEXT:            "tokLen": 1
1754 // CHECK-NEXT:           },
1755 // CHECK-NEXT:           "end": {
1756 // CHECK-NEXT:            "offset": 307,
1757 // CHECK-NEXT:            "col": 15,
1758 // CHECK-NEXT:            "tokLen": 1
1759 // CHECK-NEXT:           }
1760 // CHECK-NEXT:          },
1761 // CHECK-NEXT:          "type": {
1762 // CHECK-NEXT:           "qualType": "bool"
1763 // CHECK-NEXT:          },
1764 // CHECK-NEXT:          "valueCategory": "prvalue",
1765 // CHECK-NEXT:          "opcode": "!=",
1766 // CHECK-NEXT:          "inner": [
1767 // CHECK-NEXT:           {
1768 // CHECK-NEXT:            "id": "0x{{.*}}",
1769 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
1770 // CHECK-NEXT:            "range": {
1771 // CHECK-NEXT:             "begin": {
1772 // CHECK-NEXT:              "offset": 307,
1773 // CHECK-NEXT:              "col": 15,
1774 // CHECK-NEXT:              "tokLen": 1
1775 // CHECK-NEXT:             },
1776 // CHECK-NEXT:             "end": {
1777 // CHECK-NEXT:              "offset": 307,
1778 // CHECK-NEXT:              "col": 15,
1779 // CHECK-NEXT:              "tokLen": 1
1780 // CHECK-NEXT:             }
1781 // CHECK-NEXT:            },
1782 // CHECK-NEXT:            "type": {
1783 // CHECK-NEXT:             "qualType": "const int *"
1784 // CHECK-NEXT:            },
1785 // CHECK-NEXT:            "valueCategory": "prvalue",
1786 // CHECK-NEXT:            "castKind": "LValueToRValue",
1787 // CHECK-NEXT:            "inner": [
1788 // CHECK-NEXT:             {
1789 // CHECK-NEXT:              "id": "0x{{.*}}",
1790 // CHECK-NEXT:              "kind": "DeclRefExpr",
1791 // CHECK-NEXT:              "range": {
1792 // CHECK-NEXT:               "begin": {
1793 // CHECK-NEXT:                "offset": 307,
1794 // CHECK-NEXT:                "col": 15,
1795 // CHECK-NEXT:                "tokLen": 1
1796 // CHECK-NEXT:               },
1797 // CHECK-NEXT:               "end": {
1798 // CHECK-NEXT:                "offset": 307,
1799 // CHECK-NEXT:                "col": 15,
1800 // CHECK-NEXT:                "tokLen": 1
1801 // CHECK-NEXT:               }
1802 // CHECK-NEXT:              },
1803 // CHECK-NEXT:              "type": {
1804 // CHECK-NEXT:               "qualType": "const int *"
1805 // CHECK-NEXT:              },
1806 // CHECK-NEXT:              "valueCategory": "lvalue",
1807 // CHECK-NEXT:              "referencedDecl": {
1808 // CHECK-NEXT:               "id": "0x{{.*}}",
1809 // CHECK-NEXT:               "kind": "VarDecl",
1810 // CHECK-NEXT:               "name": "__begin1",
1811 // CHECK-NEXT:               "type": {
1812 // CHECK-NEXT:                "qualType": "const int *"
1813 // CHECK-NEXT:               }
1814 // CHECK-NEXT:              }
1815 // CHECK-NEXT:             }
1816 // CHECK-NEXT:            ]
1817 // CHECK-NEXT:           },
1818 // CHECK-NEXT:           {
1819 // CHECK-NEXT:            "id": "0x{{.*}}",
1820 // CHECK-NEXT:            "kind": "ImplicitCastExpr",
1821 // CHECK-NEXT:            "range": {
1822 // CHECK-NEXT:             "begin": {
1823 // CHECK-NEXT:              "offset": 307,
1824 // CHECK-NEXT:              "col": 15,
1825 // CHECK-NEXT:              "tokLen": 1
1826 // CHECK-NEXT:             },
1827 // CHECK-NEXT:             "end": {
1828 // CHECK-NEXT:              "offset": 307,
1829 // CHECK-NEXT:              "col": 15,
1830 // CHECK-NEXT:              "tokLen": 1
1831 // CHECK-NEXT:             }
1832 // CHECK-NEXT:            },
1833 // CHECK-NEXT:            "type": {
1834 // CHECK-NEXT:             "qualType": "const int *"
1835 // CHECK-NEXT:            },
1836 // CHECK-NEXT:            "valueCategory": "prvalue",
1837 // CHECK-NEXT:            "castKind": "LValueToRValue",
1838 // CHECK-NEXT:            "inner": [
1839 // CHECK-NEXT:             {
1840 // CHECK-NEXT:              "id": "0x{{.*}}",
1841 // CHECK-NEXT:              "kind": "DeclRefExpr",
1842 // CHECK-NEXT:              "range": {
1843 // CHECK-NEXT:               "begin": {
1844 // CHECK-NEXT:                "offset": 307,
1845 // CHECK-NEXT:                "col": 15,
1846 // CHECK-NEXT:                "tokLen": 1
1847 // CHECK-NEXT:               },
1848 // CHECK-NEXT:               "end": {
1849 // CHECK-NEXT:                "offset": 307,
1850 // CHECK-NEXT:                "col": 15,
1851 // CHECK-NEXT:                "tokLen": 1
1852 // CHECK-NEXT:               }
1853 // CHECK-NEXT:              },
1854 // CHECK-NEXT:              "type": {
1855 // CHECK-NEXT:               "qualType": "const int *"
1856 // CHECK-NEXT:              },
1857 // CHECK-NEXT:              "valueCategory": "lvalue",
1858 // CHECK-NEXT:              "referencedDecl": {
1859 // CHECK-NEXT:               "id": "0x{{.*}}",
1860 // CHECK-NEXT:               "kind": "VarDecl",
1861 // CHECK-NEXT:               "name": "__end1",
1862 // CHECK-NEXT:               "type": {
1863 // CHECK-NEXT:                "qualType": "const int *"
1864 // CHECK-NEXT:               }
1865 // CHECK-NEXT:              }
1866 // CHECK-NEXT:             }
1867 // CHECK-NEXT:            ]
1868 // CHECK-NEXT:           }
1869 // CHECK-NEXT:          ]
1870 // CHECK-NEXT:         },
1871 // CHECK-NEXT:         {
1872 // CHECK-NEXT:          "id": "0x{{.*}}",
1873 // CHECK-NEXT:          "kind": "UnaryOperator",
1874 // CHECK-NEXT:          "range": {
1875 // CHECK-NEXT:           "begin": {
1876 // CHECK-NEXT:            "offset": 307,
1877 // CHECK-NEXT:            "col": 15,
1878 // CHECK-NEXT:            "tokLen": 1
1879 // CHECK-NEXT:           },
1880 // CHECK-NEXT:           "end": {
1881 // CHECK-NEXT:            "offset": 307,
1882 // CHECK-NEXT:            "col": 15,
1883 // CHECK-NEXT:            "tokLen": 1
1884 // CHECK-NEXT:           }
1885 // CHECK-NEXT:          },
1886 // CHECK-NEXT:          "type": {
1887 // CHECK-NEXT:           "qualType": "const int *"
1888 // CHECK-NEXT:          },
1889 // CHECK-NEXT:          "valueCategory": "lvalue",
1890 // CHECK-NEXT:          "isPostfix": false,
1891 // CHECK-NEXT:          "opcode": "++",
1892 // CHECK-NEXT:          "inner": [
1893 // CHECK-NEXT:           {
1894 // CHECK-NEXT:            "id": "0x{{.*}}",
1895 // CHECK-NEXT:            "kind": "DeclRefExpr",
1896 // CHECK-NEXT:            "range": {
1897 // CHECK-NEXT:             "begin": {
1898 // CHECK-NEXT:              "offset": 307,
1899 // CHECK-NEXT:              "col": 15,
1900 // CHECK-NEXT:              "tokLen": 1
1901 // CHECK-NEXT:             },
1902 // CHECK-NEXT:             "end": {
1903 // CHECK-NEXT:              "offset": 307,
1904 // CHECK-NEXT:              "col": 15,
1905 // CHECK-NEXT:              "tokLen": 1
1906 // CHECK-NEXT:             }
1907 // CHECK-NEXT:            },
1908 // CHECK-NEXT:            "type": {
1909 // CHECK-NEXT:             "qualType": "const int *"
1910 // CHECK-NEXT:            },
1911 // CHECK-NEXT:            "valueCategory": "lvalue",
1912 // CHECK-NEXT:            "referencedDecl": {
1913 // CHECK-NEXT:             "id": "0x{{.*}}",
1914 // CHECK-NEXT:             "kind": "VarDecl",
1915 // CHECK-NEXT:             "name": "__begin1",
1916 // CHECK-NEXT:             "type": {
1917 // CHECK-NEXT:              "qualType": "const int *"
1918 // CHECK-NEXT:             }
1919 // CHECK-NEXT:            }
1920 // CHECK-NEXT:           }
1921 // CHECK-NEXT:          ]
1922 // CHECK-NEXT:         },
1923 // CHECK-NEXT:         {
1924 // CHECK-NEXT:          "id": "0x{{.*}}",
1925 // CHECK-NEXT:          "kind": "DeclStmt",
1926 // CHECK-NEXT:          "range": {
1927 // CHECK-NEXT:           "begin": {
1928 // CHECK-NEXT:            "offset": 300,
1929 // CHECK-NEXT:            "col": 8,
1930 // CHECK-NEXT:            "tokLen": 4
1931 // CHECK-NEXT:           },
1932 // CHECK-NEXT:           "end": {
1933 // CHECK-NEXT:            "offset": 316,
1934 // CHECK-NEXT:            "col": 24,
1935 // CHECK-NEXT:            "tokLen": 1
1936 // CHECK-NEXT:           }
1937 // CHECK-NEXT:          },
1938 // CHECK-NEXT:          "inner": [
1939 // CHECK-NEXT:           {
1940 // CHECK-NEXT:            "id": "0x{{.*}}",
1941 // CHECK-NEXT:            "kind": "VarDecl",
1942 // CHECK-NEXT:            "loc": {
1943 // CHECK-NEXT:             "offset": 305,
1944 // CHECK-NEXT:             "col": 13,
1945 // CHECK-NEXT:             "tokLen": 1
1946 // CHECK-NEXT:            },
1947 // CHECK-NEXT:            "range": {
1948 // CHECK-NEXT:             "begin": {
1949 // CHECK-NEXT:              "offset": 300,
1950 // CHECK-NEXT:              "col": 8,
1951 // CHECK-NEXT:              "tokLen": 4
1952 // CHECK-NEXT:             },
1953 // CHECK-NEXT:             "end": {
1954 // CHECK-NEXT:              "offset": 307,
1955 // CHECK-NEXT:              "col": 15,
1956 // CHECK-NEXT:              "tokLen": 1
1957 // CHECK-NEXT:             }
1958 // CHECK-NEXT:            },
1959 // CHECK-NEXT:            "name": "v",
1960 // CHECK-NEXT:            "type": {
1961 // CHECK-NEXT:             "qualType": "int"
1962 // CHECK-NEXT:            },
1963 // CHECK-NEXT:            "init": "c",
1964 // CHECK-NEXT:            "inner": [
1965 // CHECK-NEXT:             {
1966 // CHECK-NEXT:              "id": "0x{{.*}}",
1967 // CHECK-NEXT:              "kind": "ImplicitCastExpr",
1968 // CHECK-NEXT:              "range": {
1969 // CHECK-NEXT:               "begin": {
1970 // CHECK-NEXT:                "offset": 307,
1971 // CHECK-NEXT:                "col": 15,
1972 // CHECK-NEXT:                "tokLen": 1
1973 // CHECK-NEXT:               },
1974 // CHECK-NEXT:               "end": {
1975 // CHECK-NEXT:                "offset": 307,
1976 // CHECK-NEXT:                "col": 15,
1977 // CHECK-NEXT:                "tokLen": 1
1978 // CHECK-NEXT:               }
1979 // CHECK-NEXT:              },
1980 // CHECK-NEXT:              "type": {
1981 // CHECK-NEXT:               "qualType": "int"
1982 // CHECK-NEXT:              },
1983 // CHECK-NEXT:              "valueCategory": "prvalue",
1984 // CHECK-NEXT:              "castKind": "LValueToRValue",
1985 // CHECK-NEXT:              "inner": [
1986 // CHECK-NEXT:               {
1987 // CHECK-NEXT:                "id": "0x{{.*}}",
1988 // CHECK-NEXT:                "kind": "UnaryOperator",
1989 // CHECK-NEXT:                "range": {
1990 // CHECK-NEXT:                 "begin": {
1991 // CHECK-NEXT:                  "offset": 307,
1992 // CHECK-NEXT:                  "col": 15,
1993 // CHECK-NEXT:                  "tokLen": 1
1994 // CHECK-NEXT:                 },
1995 // CHECK-NEXT:                 "end": {
1996 // CHECK-NEXT:                  "offset": 307,
1997 // CHECK-NEXT:                  "col": 15,
1998 // CHECK-NEXT:                  "tokLen": 1
1999 // CHECK-NEXT:                 }
2000 // CHECK-NEXT:                },
2001 // CHECK-NEXT:                "type": {
2002 // CHECK-NEXT:                 "qualType": "const int"
2003 // CHECK-NEXT:                },
2004 // CHECK-NEXT:                "valueCategory": "lvalue",
2005 // CHECK-NEXT:                "isPostfix": false,
2006 // CHECK-NEXT:                "opcode": "*",
2007 // CHECK-NEXT:                "canOverflow": false,
2008 // CHECK-NEXT:                "inner": [
2009 // CHECK-NEXT:                 {
2010 // CHECK-NEXT:                  "id": "0x{{.*}}",
2011 // CHECK-NEXT:                  "kind": "ImplicitCastExpr",
2012 // CHECK-NEXT:                  "range": {
2013 // CHECK-NEXT:                   "begin": {
2014 // CHECK-NEXT:                    "offset": 307,
2015 // CHECK-NEXT:                    "col": 15,
2016 // CHECK-NEXT:                    "tokLen": 1
2017 // CHECK-NEXT:                   },
2018 // CHECK-NEXT:                   "end": {
2019 // CHECK-NEXT:                    "offset": 307,
2020 // CHECK-NEXT:                    "col": 15,
2021 // CHECK-NEXT:                    "tokLen": 1
2022 // CHECK-NEXT:                   }
2023 // CHECK-NEXT:                  },
2024 // CHECK-NEXT:                  "type": {
2025 // CHECK-NEXT:                   "qualType": "const int *"
2026 // CHECK-NEXT:                  },
2027 // CHECK-NEXT:                  "valueCategory": "prvalue",
2028 // CHECK-NEXT:                  "castKind": "LValueToRValue",
2029 // CHECK-NEXT:                  "inner": [
2030 // CHECK-NEXT:                   {
2031 // CHECK-NEXT:                    "id": "0x{{.*}}",
2032 // CHECK-NEXT:                    "kind": "DeclRefExpr",
2033 // CHECK-NEXT:                    "range": {
2034 // CHECK-NEXT:                     "begin": {
2035 // CHECK-NEXT:                      "offset": 307,
2036 // CHECK-NEXT:                      "col": 15,
2037 // CHECK-NEXT:                      "tokLen": 1
2038 // CHECK-NEXT:                     },
2039 // CHECK-NEXT:                     "end": {
2040 // CHECK-NEXT:                      "offset": 307,
2041 // CHECK-NEXT:                      "col": 15,
2042 // CHECK-NEXT:                      "tokLen": 1
2043 // CHECK-NEXT:                     }
2044 // CHECK-NEXT:                    },
2045 // CHECK-NEXT:                    "type": {
2046 // CHECK-NEXT:                     "qualType": "const int *"
2047 // CHECK-NEXT:                    },
2048 // CHECK-NEXT:                    "valueCategory": "lvalue",
2049 // CHECK-NEXT:                    "referencedDecl": {
2050 // CHECK-NEXT:                     "id": "0x{{.*}}",
2051 // CHECK-NEXT:                     "kind": "VarDecl",
2052 // CHECK-NEXT:                     "name": "__begin1",
2053 // CHECK-NEXT:                     "type": {
2054 // CHECK-NEXT:                      "qualType": "const int *"
2055 // CHECK-NEXT:                     }
2056 // CHECK-NEXT:                    }
2057 // CHECK-NEXT:                   }
2058 // CHECK-NEXT:                  ]
2059 // CHECK-NEXT:                 }
2060 // CHECK-NEXT:                ]
2061 // CHECK-NEXT:               }
2062 // CHECK-NEXT:              ]
2063 // CHECK-NEXT:             }
2064 // CHECK-NEXT:            ]
2065 // CHECK-NEXT:           }
2066 // CHECK-NEXT:          ]
2067 // CHECK-NEXT:         },
2068 // CHECK-NEXT:         {
2069 // CHECK-NEXT:          "id": "0x{{.*}}",
2070 // CHECK-NEXT:          "kind": "CompoundStmt",
2071 // CHECK-NEXT:          "range": {
2072 // CHECK-NEXT:           "begin": {
2073 // CHECK-NEXT:            "offset": 318,
2074 // CHECK-NEXT:            "col": 26,
2075 // CHECK-NEXT:            "tokLen": 1
2076 // CHECK-NEXT:           },
2077 // CHECK-NEXT:           "end": {
2078 // CHECK-NEXT:            "offset": 319,
2079 // CHECK-NEXT:            "col": 27,
2080 // CHECK-NEXT:            "tokLen": 1
2081 // CHECK-NEXT:           }
2082 // CHECK-NEXT:          }
2083 // CHECK-NEXT:         }
2084 // CHECK-NEXT:        ]
2085 // CHECK-NEXT:       }
2086 // CHECK-NEXT:      ]
2087 // CHECK-NEXT:     }
2088 // CHECK-NEXT:    ]
2089 // CHECK-NEXT:   }
2090 // CHECK-NEXT:  ]
2091 // CHECK-NEXT: }
2092