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