xref: /llvm-project/clang/test/AST/ast-dump-default-init-json.cpp (revision 060137038ab9246b377e190ae3c6f272fa57cbfc)
1986d0dbaSyronglin // RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s
2986d0dbaSyronglin 
3986d0dbaSyronglin struct A {
4986d0dbaSyronglin   int arr[1];
5986d0dbaSyronglin };
6986d0dbaSyronglin 
7986d0dbaSyronglin struct B {
8986d0dbaSyronglin   const A &a = A{{0}};
9986d0dbaSyronglin };
10986d0dbaSyronglin 
11986d0dbaSyronglin void test() {
12986d0dbaSyronglin   B b{};
13986d0dbaSyronglin }
14986d0dbaSyronglin 
15986d0dbaSyronglin // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
16986d0dbaSyronglin 
17986d0dbaSyronglin 
18986d0dbaSyronglin // CHECK-NOT: {{^}}Dumping
19986d0dbaSyronglin // CHECK:  "kind": "TranslationUnitDecl",
20986d0dbaSyronglin // CHECK-NEXT:  "loc": {},
21986d0dbaSyronglin // CHECK-NEXT:  "range": {
22986d0dbaSyronglin // CHECK-NEXT:   "begin": {},
23986d0dbaSyronglin // CHECK-NEXT:   "end": {}
24986d0dbaSyronglin // CHECK-NEXT:  },
25986d0dbaSyronglin // CHECK-NEXT:  "inner": [
26986d0dbaSyronglin // CHECK-NEXT:   {
27986d0dbaSyronglin // CHECK-NEXT:    "id": "0x{{.*}}",
28986d0dbaSyronglin // CHECK-NEXT:    "kind": "TypedefDecl",
29986d0dbaSyronglin // CHECK-NEXT:    "loc": {},
30986d0dbaSyronglin // CHECK-NEXT:    "range": {
31986d0dbaSyronglin // CHECK-NEXT:     "begin": {},
32986d0dbaSyronglin // CHECK-NEXT:     "end": {}
33986d0dbaSyronglin // CHECK-NEXT:    },
34986d0dbaSyronglin // CHECK-NEXT:    "isImplicit": true,
35986d0dbaSyronglin // CHECK-NEXT:    "name": "__int128_t",
36986d0dbaSyronglin // CHECK-NEXT:    "type": {
37986d0dbaSyronglin // CHECK-NEXT:     "qualType": "__int128"
38986d0dbaSyronglin // CHECK-NEXT:    },
39986d0dbaSyronglin // CHECK-NEXT:    "inner": [
40986d0dbaSyronglin // CHECK-NEXT:     {
41986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
42986d0dbaSyronglin // CHECK-NEXT:      "kind": "BuiltinType",
43986d0dbaSyronglin // CHECK-NEXT:      "type": {
44986d0dbaSyronglin // CHECK-NEXT:       "qualType": "__int128"
45986d0dbaSyronglin // CHECK-NEXT:      }
46986d0dbaSyronglin // CHECK-NEXT:     }
47986d0dbaSyronglin // CHECK-NEXT:    ]
48986d0dbaSyronglin // CHECK-NEXT:   },
49986d0dbaSyronglin // CHECK-NEXT:   {
50986d0dbaSyronglin // CHECK-NEXT:    "id": "0x{{.*}}",
51986d0dbaSyronglin // CHECK-NEXT:    "kind": "TypedefDecl",
52986d0dbaSyronglin // CHECK-NEXT:    "loc": {},
53986d0dbaSyronglin // CHECK-NEXT:    "range": {
54986d0dbaSyronglin // CHECK-NEXT:     "begin": {},
55986d0dbaSyronglin // CHECK-NEXT:     "end": {}
56986d0dbaSyronglin // CHECK-NEXT:    },
57986d0dbaSyronglin // CHECK-NEXT:    "isImplicit": true,
58986d0dbaSyronglin // CHECK-NEXT:    "name": "__uint128_t",
59986d0dbaSyronglin // CHECK-NEXT:    "type": {
60986d0dbaSyronglin // CHECK-NEXT:     "qualType": "unsigned __int128"
61986d0dbaSyronglin // CHECK-NEXT:    },
62986d0dbaSyronglin // CHECK-NEXT:    "inner": [
63986d0dbaSyronglin // CHECK-NEXT:     {
64986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
65986d0dbaSyronglin // CHECK-NEXT:      "kind": "BuiltinType",
66986d0dbaSyronglin // CHECK-NEXT:      "type": {
67986d0dbaSyronglin // CHECK-NEXT:       "qualType": "unsigned __int128"
68986d0dbaSyronglin // CHECK-NEXT:      }
69986d0dbaSyronglin // CHECK-NEXT:     }
70986d0dbaSyronglin // CHECK-NEXT:    ]
71986d0dbaSyronglin // CHECK-NEXT:   },
72986d0dbaSyronglin // CHECK-NEXT:   {
73986d0dbaSyronglin // CHECK-NEXT:    "id": "0x{{.*}}",
74986d0dbaSyronglin // CHECK-NEXT:    "kind": "TypedefDecl",
75986d0dbaSyronglin // CHECK-NEXT:    "loc": {},
76986d0dbaSyronglin // CHECK-NEXT:    "range": {
77986d0dbaSyronglin // CHECK-NEXT:     "begin": {},
78986d0dbaSyronglin // CHECK-NEXT:     "end": {}
79986d0dbaSyronglin // CHECK-NEXT:    },
80986d0dbaSyronglin // CHECK-NEXT:    "isImplicit": true,
81986d0dbaSyronglin // CHECK-NEXT:    "name": "__NSConstantString",
82986d0dbaSyronglin // CHECK-NEXT:    "type": {
83986d0dbaSyronglin // CHECK-NEXT:     "qualType": "__NSConstantString_tag"
84986d0dbaSyronglin // CHECK-NEXT:    },
85986d0dbaSyronglin // CHECK-NEXT:    "inner": [
86986d0dbaSyronglin // CHECK-NEXT:     {
87986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
88986d0dbaSyronglin // CHECK-NEXT:      "kind": "RecordType",
89986d0dbaSyronglin // CHECK-NEXT:      "type": {
90986d0dbaSyronglin // CHECK-NEXT:       "qualType": "__NSConstantString_tag"
91986d0dbaSyronglin // CHECK-NEXT:      },
92986d0dbaSyronglin // CHECK-NEXT:      "decl": {
93986d0dbaSyronglin // CHECK-NEXT:       "id": "0x{{.*}}",
94986d0dbaSyronglin // CHECK-NEXT:       "kind": "CXXRecordDecl",
95986d0dbaSyronglin // CHECK-NEXT:       "name": "__NSConstantString_tag"
96986d0dbaSyronglin // CHECK-NEXT:      }
97986d0dbaSyronglin // CHECK-NEXT:     }
98986d0dbaSyronglin // CHECK-NEXT:    ]
99986d0dbaSyronglin // CHECK-NEXT:   },
100986d0dbaSyronglin // CHECK-NEXT:   {
101986d0dbaSyronglin // CHECK-NEXT:    "id": "0x{{.*}}",
102986d0dbaSyronglin // CHECK-NEXT:    "kind": "TypedefDecl",
103986d0dbaSyronglin // CHECK-NEXT:    "loc": {},
104986d0dbaSyronglin // CHECK-NEXT:    "range": {
105986d0dbaSyronglin // CHECK-NEXT:     "begin": {},
106986d0dbaSyronglin // CHECK-NEXT:     "end": {}
107986d0dbaSyronglin // CHECK-NEXT:    },
108986d0dbaSyronglin // CHECK-NEXT:    "isImplicit": true,
109986d0dbaSyronglin // CHECK-NEXT:    "name": "__builtin_ms_va_list",
110986d0dbaSyronglin // CHECK-NEXT:    "type": {
111986d0dbaSyronglin // CHECK-NEXT:     "qualType": "char *"
112986d0dbaSyronglin // CHECK-NEXT:    },
113986d0dbaSyronglin // CHECK-NEXT:    "inner": [
114986d0dbaSyronglin // CHECK-NEXT:     {
115986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
116986d0dbaSyronglin // CHECK-NEXT:      "kind": "PointerType",
117986d0dbaSyronglin // CHECK-NEXT:      "type": {
118986d0dbaSyronglin // CHECK-NEXT:       "qualType": "char *"
119986d0dbaSyronglin // CHECK-NEXT:      },
120986d0dbaSyronglin // CHECK-NEXT:      "inner": [
121986d0dbaSyronglin // CHECK-NEXT:       {
122986d0dbaSyronglin // CHECK-NEXT:        "id": "0x{{.*}}",
123986d0dbaSyronglin // CHECK-NEXT:        "kind": "BuiltinType",
124986d0dbaSyronglin // CHECK-NEXT:        "type": {
125986d0dbaSyronglin // CHECK-NEXT:         "qualType": "char"
126986d0dbaSyronglin // CHECK-NEXT:        }
127986d0dbaSyronglin // CHECK-NEXT:       }
128986d0dbaSyronglin // CHECK-NEXT:      ]
129986d0dbaSyronglin // CHECK-NEXT:     }
130986d0dbaSyronglin // CHECK-NEXT:    ]
131986d0dbaSyronglin // CHECK-NEXT:   },
132986d0dbaSyronglin // CHECK-NEXT:   {
133986d0dbaSyronglin // CHECK-NEXT:    "id": "0x{{.*}}",
134986d0dbaSyronglin // CHECK-NEXT:    "kind": "TypedefDecl",
135986d0dbaSyronglin // CHECK-NEXT:    "loc": {},
136986d0dbaSyronglin // CHECK-NEXT:    "range": {
137986d0dbaSyronglin // CHECK-NEXT:     "begin": {},
138986d0dbaSyronglin // CHECK-NEXT:     "end": {}
139986d0dbaSyronglin // CHECK-NEXT:    },
140986d0dbaSyronglin // CHECK-NEXT:    "isImplicit": true,
141986d0dbaSyronglin // CHECK-NEXT:    "name": "__builtin_va_list",
142986d0dbaSyronglin // CHECK-NEXT:    "type": {
143986d0dbaSyronglin // CHECK-NEXT:     "qualType": "__va_list_tag[1]"
144986d0dbaSyronglin // CHECK-NEXT:    },
145986d0dbaSyronglin // CHECK-NEXT:    "inner": [
146986d0dbaSyronglin // CHECK-NEXT:     {
147986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
148986d0dbaSyronglin // CHECK-NEXT:      "kind": "ConstantArrayType",
149986d0dbaSyronglin // CHECK-NEXT:      "type": {
150986d0dbaSyronglin // CHECK-NEXT:       "qualType": "__va_list_tag[1]"
151986d0dbaSyronglin // CHECK-NEXT:      },
152986d0dbaSyronglin // CHECK-NEXT:      "size": 1,
153986d0dbaSyronglin // CHECK-NEXT:      "inner": [
154986d0dbaSyronglin // CHECK-NEXT:       {
155986d0dbaSyronglin // CHECK-NEXT:        "id": "0x{{.*}}",
156986d0dbaSyronglin // CHECK-NEXT:        "kind": "RecordType",
157986d0dbaSyronglin // CHECK-NEXT:        "type": {
158986d0dbaSyronglin // CHECK-NEXT:         "qualType": "__va_list_tag"
159986d0dbaSyronglin // CHECK-NEXT:        },
160986d0dbaSyronglin // CHECK-NEXT:        "decl": {
161986d0dbaSyronglin // CHECK-NEXT:         "id": "0x{{.*}}",
162986d0dbaSyronglin // CHECK-NEXT:         "kind": "CXXRecordDecl",
163986d0dbaSyronglin // CHECK-NEXT:         "name": "__va_list_tag"
164986d0dbaSyronglin // CHECK-NEXT:        }
165986d0dbaSyronglin // CHECK-NEXT:       }
166986d0dbaSyronglin // CHECK-NEXT:      ]
167986d0dbaSyronglin // CHECK-NEXT:     }
168986d0dbaSyronglin // CHECK-NEXT:    ]
169986d0dbaSyronglin // CHECK-NEXT:   },
170986d0dbaSyronglin // CHECK-NEXT:   {
171986d0dbaSyronglin // CHECK-NEXT:    "id": "0x{{.*}}",
172986d0dbaSyronglin // CHECK-NEXT:    "kind": "CXXRecordDecl",
173986d0dbaSyronglin // CHECK-NEXT:    "loc": {
174986d0dbaSyronglin // CHECK-NEXT:     "offset": 99,
175986d0dbaSyronglin // CHECK-NEXT:     "file": "{{.*}}",
176986d0dbaSyronglin // CHECK-NEXT:     "line": 3,
177986d0dbaSyronglin // CHECK-NEXT:     "col": 8,
178986d0dbaSyronglin // CHECK-NEXT:     "tokLen": 1
179986d0dbaSyronglin // CHECK-NEXT:    },
180986d0dbaSyronglin // CHECK-NEXT:    "range": {
181986d0dbaSyronglin // CHECK-NEXT:     "begin": {
182986d0dbaSyronglin // CHECK-NEXT:      "offset": 92,
183986d0dbaSyronglin // CHECK-NEXT:      "col": 1,
184986d0dbaSyronglin // CHECK-NEXT:      "tokLen": 6
185986d0dbaSyronglin // CHECK-NEXT:     },
186986d0dbaSyronglin // CHECK-NEXT:     "end": {
187986d0dbaSyronglin // CHECK-NEXT:      "offset": 117,
188986d0dbaSyronglin // CHECK-NEXT:      "line": 5,
189986d0dbaSyronglin // CHECK-NEXT:      "col": 1,
190986d0dbaSyronglin // CHECK-NEXT:      "tokLen": 1
191986d0dbaSyronglin // CHECK-NEXT:     }
192986d0dbaSyronglin // CHECK-NEXT:    },
193986d0dbaSyronglin // CHECK-NEXT:    "isReferenced": true,
194986d0dbaSyronglin // CHECK-NEXT:    "name": "A",
195986d0dbaSyronglin // CHECK-NEXT:    "tagUsed": "struct",
196986d0dbaSyronglin // CHECK-NEXT:    "completeDefinition": true,
197986d0dbaSyronglin // CHECK-NEXT:    "definitionData": {
198986d0dbaSyronglin // CHECK-NEXT:     "canPassInRegisters": true,
199986d0dbaSyronglin // CHECK-NEXT:     "copyAssign": {
200986d0dbaSyronglin // CHECK-NEXT:      "hasConstParam": true,
201986d0dbaSyronglin // CHECK-NEXT:      "implicitHasConstParam": true,
202986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
203986d0dbaSyronglin // CHECK-NEXT:      "simple": true,
204986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
205986d0dbaSyronglin // CHECK-NEXT:     },
206986d0dbaSyronglin // CHECK-NEXT:     "copyCtor": {
207986d0dbaSyronglin // CHECK-NEXT:      "hasConstParam": true,
208986d0dbaSyronglin // CHECK-NEXT:      "implicitHasConstParam": true,
209986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
210986d0dbaSyronglin // CHECK-NEXT:      "simple": true,
211986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
212986d0dbaSyronglin // CHECK-NEXT:     },
213986d0dbaSyronglin // CHECK-NEXT:     "defaultCtor": {
214986d0dbaSyronglin // CHECK-NEXT:      "exists": true,
215986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
216986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
217986d0dbaSyronglin // CHECK-NEXT:     },
218986d0dbaSyronglin // CHECK-NEXT:     "dtor": {
219986d0dbaSyronglin // CHECK-NEXT:      "irrelevant": true,
220986d0dbaSyronglin // CHECK-NEXT:      "simple": true,
221986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
222986d0dbaSyronglin // CHECK-NEXT:     },
223986d0dbaSyronglin // CHECK-NEXT:     "isAggregate": true,
224986d0dbaSyronglin // CHECK-NEXT:     "isLiteral": true,
225986d0dbaSyronglin // CHECK-NEXT:     "isPOD": true,
226986d0dbaSyronglin // CHECK-NEXT:     "isStandardLayout": true,
227986d0dbaSyronglin // CHECK-NEXT:     "isTrivial": true,
228986d0dbaSyronglin // CHECK-NEXT:     "isTriviallyCopyable": true,
229986d0dbaSyronglin // CHECK-NEXT:     "moveAssign": {
230986d0dbaSyronglin // CHECK-NEXT:      "exists": true,
231986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
232986d0dbaSyronglin // CHECK-NEXT:      "simple": true,
233986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
234986d0dbaSyronglin // CHECK-NEXT:     },
235986d0dbaSyronglin // CHECK-NEXT:     "moveCtor": {
236986d0dbaSyronglin // CHECK-NEXT:      "exists": true,
237986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
238986d0dbaSyronglin // CHECK-NEXT:      "simple": true,
239986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
240986d0dbaSyronglin // CHECK-NEXT:     }
241986d0dbaSyronglin // CHECK-NEXT:    },
242986d0dbaSyronglin // CHECK-NEXT:    "inner": [
243986d0dbaSyronglin // CHECK-NEXT:     {
244986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
245986d0dbaSyronglin // CHECK-NEXT:      "kind": "CXXRecordDecl",
246986d0dbaSyronglin // CHECK-NEXT:      "loc": {
247986d0dbaSyronglin // CHECK-NEXT:       "offset": 99,
248986d0dbaSyronglin // CHECK-NEXT:       "line": 3,
249986d0dbaSyronglin // CHECK-NEXT:       "col": 8,
250986d0dbaSyronglin // CHECK-NEXT:       "tokLen": 1
251986d0dbaSyronglin // CHECK-NEXT:      },
252986d0dbaSyronglin // CHECK-NEXT:      "range": {
253986d0dbaSyronglin // CHECK-NEXT:       "begin": {
254986d0dbaSyronglin // CHECK-NEXT:        "offset": 92,
255986d0dbaSyronglin // CHECK-NEXT:        "col": 1,
256986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 6
257986d0dbaSyronglin // CHECK-NEXT:       },
258986d0dbaSyronglin // CHECK-NEXT:       "end": {
259986d0dbaSyronglin // CHECK-NEXT:        "offset": 99,
260986d0dbaSyronglin // CHECK-NEXT:        "col": 8,
261986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 1
262986d0dbaSyronglin // CHECK-NEXT:       }
263986d0dbaSyronglin // CHECK-NEXT:      },
264986d0dbaSyronglin // CHECK-NEXT:      "isImplicit": true,
265986d0dbaSyronglin // CHECK-NEXT:      "name": "A",
266986d0dbaSyronglin // CHECK-NEXT:      "tagUsed": "struct"
267986d0dbaSyronglin // CHECK-NEXT:     },
268986d0dbaSyronglin // CHECK-NEXT:     {
269986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
270986d0dbaSyronglin // CHECK-NEXT:      "kind": "FieldDecl",
271986d0dbaSyronglin // CHECK-NEXT:      "loc": {
272986d0dbaSyronglin // CHECK-NEXT:       "offset": 109,
273986d0dbaSyronglin // CHECK-NEXT:       "line": 4,
274986d0dbaSyronglin // CHECK-NEXT:       "col": 7,
275986d0dbaSyronglin // CHECK-NEXT:       "tokLen": 3
276986d0dbaSyronglin // CHECK-NEXT:      },
277986d0dbaSyronglin // CHECK-NEXT:      "range": {
278986d0dbaSyronglin // CHECK-NEXT:       "begin": {
279986d0dbaSyronglin // CHECK-NEXT:        "offset": 105,
280986d0dbaSyronglin // CHECK-NEXT:        "col": 3,
281986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 3
282986d0dbaSyronglin // CHECK-NEXT:       },
283986d0dbaSyronglin // CHECK-NEXT:       "end": {
284986d0dbaSyronglin // CHECK-NEXT:        "offset": 114,
285986d0dbaSyronglin // CHECK-NEXT:        "col": 12,
286986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 1
287986d0dbaSyronglin // CHECK-NEXT:       }
288986d0dbaSyronglin // CHECK-NEXT:      },
289986d0dbaSyronglin // CHECK-NEXT:      "name": "arr",
290986d0dbaSyronglin // CHECK-NEXT:      "type": {
291986d0dbaSyronglin // CHECK-NEXT:       "qualType": "int[1]"
292986d0dbaSyronglin // CHECK-NEXT:      }
293986d0dbaSyronglin // CHECK-NEXT:     },
294986d0dbaSyronglin // CHECK-NEXT:     {
295986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
296986d0dbaSyronglin // CHECK-NEXT:      "kind": "CXXDestructorDecl",
297986d0dbaSyronglin // CHECK-NEXT:      "loc": {
298986d0dbaSyronglin // CHECK-NEXT:       "offset": 99,
299986d0dbaSyronglin // CHECK-NEXT:       "line": 3,
300986d0dbaSyronglin // CHECK-NEXT:       "col": 8,
301986d0dbaSyronglin // CHECK-NEXT:       "tokLen": 1
302986d0dbaSyronglin // CHECK-NEXT:      },
303986d0dbaSyronglin // CHECK-NEXT:      "range": {
304986d0dbaSyronglin // CHECK-NEXT:       "begin": {
305986d0dbaSyronglin // CHECK-NEXT:        "offset": 99,
306986d0dbaSyronglin // CHECK-NEXT:        "col": 8,
307986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 1
308986d0dbaSyronglin // CHECK-NEXT:       },
309986d0dbaSyronglin // CHECK-NEXT:       "end": {
310986d0dbaSyronglin // CHECK-NEXT:        "offset": 99,
311986d0dbaSyronglin // CHECK-NEXT:        "col": 8,
312986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 1
313986d0dbaSyronglin // CHECK-NEXT:       }
314986d0dbaSyronglin // CHECK-NEXT:      },
315986d0dbaSyronglin // CHECK-NEXT:      "isImplicit": true,
316986d0dbaSyronglin // CHECK-NEXT:      "isReferenced": true,
317986d0dbaSyronglin // CHECK-NEXT:      "name": "~A",
318986d0dbaSyronglin // CHECK-NEXT:      "mangledName": "_ZN1AD1Ev",
319986d0dbaSyronglin // CHECK-NEXT:      "type": {
320986d0dbaSyronglin // CHECK-NEXT:       "qualType": "void () noexcept"
321986d0dbaSyronglin // CHECK-NEXT:      },
322986d0dbaSyronglin // CHECK-NEXT:      "inline": true,
323986d0dbaSyronglin // CHECK-NEXT:      "explicitlyDefaulted": "default"
324986d0dbaSyronglin // CHECK-NEXT:     }
325986d0dbaSyronglin // CHECK-NEXT:    ]
326986d0dbaSyronglin // CHECK-NEXT:   },
327986d0dbaSyronglin // CHECK-NEXT:   {
328986d0dbaSyronglin // CHECK-NEXT:    "id": "0x{{.*}}",
329986d0dbaSyronglin // CHECK-NEXT:    "kind": "CXXRecordDecl",
330986d0dbaSyronglin // CHECK-NEXT:    "loc": {
331986d0dbaSyronglin // CHECK-NEXT:     "offset": 128,
332986d0dbaSyronglin // CHECK-NEXT:     "line": 7,
333986d0dbaSyronglin // CHECK-NEXT:     "col": 8,
334986d0dbaSyronglin // CHECK-NEXT:     "tokLen": 1
335986d0dbaSyronglin // CHECK-NEXT:    },
336986d0dbaSyronglin // CHECK-NEXT:    "range": {
337986d0dbaSyronglin // CHECK-NEXT:     "begin": {
338986d0dbaSyronglin // CHECK-NEXT:      "offset": 121,
339986d0dbaSyronglin // CHECK-NEXT:      "col": 1,
340986d0dbaSyronglin // CHECK-NEXT:      "tokLen": 6
341986d0dbaSyronglin // CHECK-NEXT:     },
342986d0dbaSyronglin // CHECK-NEXT:     "end": {
343986d0dbaSyronglin // CHECK-NEXT:      "offset": 155,
344986d0dbaSyronglin // CHECK-NEXT:      "line": 9,
345986d0dbaSyronglin // CHECK-NEXT:      "col": 1,
346986d0dbaSyronglin // CHECK-NEXT:      "tokLen": 1
347986d0dbaSyronglin // CHECK-NEXT:     }
348986d0dbaSyronglin // CHECK-NEXT:    },
349986d0dbaSyronglin // CHECK-NEXT:    "isReferenced": true,
350986d0dbaSyronglin // CHECK-NEXT:    "name": "B",
351986d0dbaSyronglin // CHECK-NEXT:    "tagUsed": "struct",
352986d0dbaSyronglin // CHECK-NEXT:    "completeDefinition": true,
353986d0dbaSyronglin // CHECK-NEXT:    "definitionData": {
354986d0dbaSyronglin // CHECK-NEXT:     "canConstDefaultInit": true,
355986d0dbaSyronglin // CHECK-NEXT:     "canPassInRegisters": true,
356986d0dbaSyronglin // CHECK-NEXT:     "copyAssign": {
357986d0dbaSyronglin // CHECK-NEXT:      "hasConstParam": true,
358986d0dbaSyronglin // CHECK-NEXT:      "implicitHasConstParam": true,
359986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
360986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
361986d0dbaSyronglin // CHECK-NEXT:     },
362986d0dbaSyronglin // CHECK-NEXT:     "copyCtor": {
363986d0dbaSyronglin // CHECK-NEXT:      "hasConstParam": true,
364986d0dbaSyronglin // CHECK-NEXT:      "implicitHasConstParam": true,
365986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
366986d0dbaSyronglin // CHECK-NEXT:      "simple": true,
367986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
368986d0dbaSyronglin // CHECK-NEXT:     },
369986d0dbaSyronglin // CHECK-NEXT:     "defaultCtor": {
370986d0dbaSyronglin // CHECK-NEXT:      "defaultedIsConstexpr": true,
371986d0dbaSyronglin // CHECK-NEXT:      "exists": true,
372986d0dbaSyronglin // CHECK-NEXT:      "isConstexpr": true,
373986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
374986d0dbaSyronglin // CHECK-NEXT:      "nonTrivial": true
375986d0dbaSyronglin // CHECK-NEXT:     },
376986d0dbaSyronglin // CHECK-NEXT:     "dtor": {
377986d0dbaSyronglin // CHECK-NEXT:      "irrelevant": true,
378986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
379986d0dbaSyronglin // CHECK-NEXT:      "simple": true,
380986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
381986d0dbaSyronglin // CHECK-NEXT:     },
382986d0dbaSyronglin // CHECK-NEXT:     "hasConstexprNonCopyMoveConstructor": true,
383986d0dbaSyronglin // CHECK-NEXT:     "isAggregate": true,
384986d0dbaSyronglin // CHECK-NEXT:     "isLiteral": true,
385986d0dbaSyronglin // CHECK-NEXT:     "isTriviallyCopyable": true,
386986d0dbaSyronglin // CHECK-NEXT:     "moveAssign": {
387986d0dbaSyronglin // CHECK-NEXT:      "exists": true,
388986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
389986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
390986d0dbaSyronglin // CHECK-NEXT:     },
391986d0dbaSyronglin // CHECK-NEXT:     "moveCtor": {
392986d0dbaSyronglin // CHECK-NEXT:      "exists": true,
393986d0dbaSyronglin // CHECK-NEXT:      "needsImplicit": true,
394986d0dbaSyronglin // CHECK-NEXT:      "simple": true,
395986d0dbaSyronglin // CHECK-NEXT:      "trivial": true
396986d0dbaSyronglin // CHECK-NEXT:     }
397986d0dbaSyronglin // CHECK-NEXT:    },
398986d0dbaSyronglin // CHECK-NEXT:    "inner": [
399986d0dbaSyronglin // CHECK-NEXT:     {
400986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
401986d0dbaSyronglin // CHECK-NEXT:      "kind": "CXXRecordDecl",
402986d0dbaSyronglin // CHECK-NEXT:      "loc": {
403986d0dbaSyronglin // CHECK-NEXT:       "offset": 128,
404986d0dbaSyronglin // CHECK-NEXT:       "line": 7,
405986d0dbaSyronglin // CHECK-NEXT:       "col": 8,
406986d0dbaSyronglin // CHECK-NEXT:       "tokLen": 1
407986d0dbaSyronglin // CHECK-NEXT:      },
408986d0dbaSyronglin // CHECK-NEXT:      "range": {
409986d0dbaSyronglin // CHECK-NEXT:       "begin": {
410986d0dbaSyronglin // CHECK-NEXT:        "offset": 121,
411986d0dbaSyronglin // CHECK-NEXT:        "col": 1,
412986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 6
413986d0dbaSyronglin // CHECK-NEXT:       },
414986d0dbaSyronglin // CHECK-NEXT:       "end": {
415986d0dbaSyronglin // CHECK-NEXT:        "offset": 128,
416986d0dbaSyronglin // CHECK-NEXT:        "col": 8,
417986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 1
418986d0dbaSyronglin // CHECK-NEXT:       }
419986d0dbaSyronglin // CHECK-NEXT:      },
420986d0dbaSyronglin // CHECK-NEXT:      "isImplicit": true,
421986d0dbaSyronglin // CHECK-NEXT:      "name": "B",
422986d0dbaSyronglin // CHECK-NEXT:      "tagUsed": "struct"
423986d0dbaSyronglin // CHECK-NEXT:     },
424986d0dbaSyronglin // CHECK-NEXT:     {
425986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
426986d0dbaSyronglin // CHECK-NEXT:      "kind": "FieldDecl",
427986d0dbaSyronglin // CHECK-NEXT:      "loc": {
428986d0dbaSyronglin // CHECK-NEXT:       "offset": 143,
429986d0dbaSyronglin // CHECK-NEXT:       "line": 8,
430986d0dbaSyronglin // CHECK-NEXT:       "col": 12,
431986d0dbaSyronglin // CHECK-NEXT:       "tokLen": 1
432986d0dbaSyronglin // CHECK-NEXT:      },
433986d0dbaSyronglin // CHECK-NEXT:      "range": {
434986d0dbaSyronglin // CHECK-NEXT:       "begin": {
435986d0dbaSyronglin // CHECK-NEXT:        "offset": 134,
436986d0dbaSyronglin // CHECK-NEXT:        "col": 3,
437986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 5
438986d0dbaSyronglin // CHECK-NEXT:       },
439986d0dbaSyronglin // CHECK-NEXT:       "end": {
440986d0dbaSyronglin // CHECK-NEXT:        "offset": 152,
441986d0dbaSyronglin // CHECK-NEXT:        "col": 21,
442986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 1
443986d0dbaSyronglin // CHECK-NEXT:       }
444986d0dbaSyronglin // CHECK-NEXT:      },
445986d0dbaSyronglin // CHECK-NEXT:      "name": "a",
446986d0dbaSyronglin // CHECK-NEXT:      "type": {
447986d0dbaSyronglin // CHECK-NEXT:       "qualType": "const A &"
448986d0dbaSyronglin // CHECK-NEXT:      },
449986d0dbaSyronglin // CHECK-NEXT:      "hasInClassInitializer": true,
450986d0dbaSyronglin // CHECK-NEXT:      "inner": [
451986d0dbaSyronglin // CHECK-NEXT:       {
452986d0dbaSyronglin // CHECK-NEXT:        "id": "0x{{.*}}",
453986d0dbaSyronglin // CHECK-NEXT:        "kind": "ExprWithCleanups",
454986d0dbaSyronglin // CHECK-NEXT:        "range": {
455986d0dbaSyronglin // CHECK-NEXT:         "begin": {
456986d0dbaSyronglin // CHECK-NEXT:          "offset": 147,
457986d0dbaSyronglin // CHECK-NEXT:          "col": 16,
458986d0dbaSyronglin // CHECK-NEXT:          "tokLen": 1
459986d0dbaSyronglin // CHECK-NEXT:         },
460986d0dbaSyronglin // CHECK-NEXT:         "end": {
461986d0dbaSyronglin // CHECK-NEXT:          "offset": 152,
462986d0dbaSyronglin // CHECK-NEXT:          "col": 21,
463986d0dbaSyronglin // CHECK-NEXT:          "tokLen": 1
464986d0dbaSyronglin // CHECK-NEXT:         }
465986d0dbaSyronglin // CHECK-NEXT:        },
466986d0dbaSyronglin // CHECK-NEXT:        "type": {
467986d0dbaSyronglin // CHECK-NEXT:         "qualType": "const A"
468986d0dbaSyronglin // CHECK-NEXT:        },
469986d0dbaSyronglin // CHECK-NEXT:        "valueCategory": "lvalue",
470986d0dbaSyronglin // CHECK-NEXT:        "inner": [
471986d0dbaSyronglin // CHECK-NEXT:         {
472986d0dbaSyronglin // CHECK-NEXT:          "id": "0x{{.*}}",
473986d0dbaSyronglin // CHECK-NEXT:          "kind": "MaterializeTemporaryExpr",
474986d0dbaSyronglin // CHECK-NEXT:          "range": {
475986d0dbaSyronglin // CHECK-NEXT:           "begin": {
476986d0dbaSyronglin // CHECK-NEXT:            "offset": 147,
477986d0dbaSyronglin // CHECK-NEXT:            "col": 16,
478986d0dbaSyronglin // CHECK-NEXT:            "tokLen": 1
479986d0dbaSyronglin // CHECK-NEXT:           },
480986d0dbaSyronglin // CHECK-NEXT:           "end": {
481986d0dbaSyronglin // CHECK-NEXT:            "offset": 152,
482986d0dbaSyronglin // CHECK-NEXT:            "col": 21,
483986d0dbaSyronglin // CHECK-NEXT:            "tokLen": 1
484986d0dbaSyronglin // CHECK-NEXT:           }
485986d0dbaSyronglin // CHECK-NEXT:          },
486986d0dbaSyronglin // CHECK-NEXT:          "type": {
487986d0dbaSyronglin // CHECK-NEXT:           "qualType": "const A"
488986d0dbaSyronglin // CHECK-NEXT:          },
489986d0dbaSyronglin // CHECK-NEXT:          "valueCategory": "lvalue",
490986d0dbaSyronglin // CHECK-NEXT:          "extendingDecl": {
491986d0dbaSyronglin // CHECK-NEXT:           "id": "0x{{.*}}",
492986d0dbaSyronglin // CHECK-NEXT:           "kind": "FieldDecl",
493986d0dbaSyronglin // CHECK-NEXT:           "name": "a",
494986d0dbaSyronglin // CHECK-NEXT:           "type": {
495986d0dbaSyronglin // CHECK-NEXT:            "qualType": "const A &"
496986d0dbaSyronglin // CHECK-NEXT:           }
497986d0dbaSyronglin // CHECK-NEXT:          },
498986d0dbaSyronglin // CHECK-NEXT:          "storageDuration": "automatic",
499986d0dbaSyronglin // CHECK-NEXT:          "boundToLValueRef": true,
500986d0dbaSyronglin // CHECK-NEXT:          "inner": [
501986d0dbaSyronglin // CHECK-NEXT:           {
502986d0dbaSyronglin // CHECK-NEXT:            "id": "0x{{.*}}",
503986d0dbaSyronglin // CHECK-NEXT:            "kind": "ImplicitCastExpr",
504986d0dbaSyronglin // CHECK-NEXT:            "range": {
505986d0dbaSyronglin // CHECK-NEXT:             "begin": {
506986d0dbaSyronglin // CHECK-NEXT:              "offset": 147,
507986d0dbaSyronglin // CHECK-NEXT:              "col": 16,
508986d0dbaSyronglin // CHECK-NEXT:              "tokLen": 1
509986d0dbaSyronglin // CHECK-NEXT:             },
510986d0dbaSyronglin // CHECK-NEXT:             "end": {
511986d0dbaSyronglin // CHECK-NEXT:              "offset": 152,
512986d0dbaSyronglin // CHECK-NEXT:              "col": 21,
513986d0dbaSyronglin // CHECK-NEXT:              "tokLen": 1
514986d0dbaSyronglin // CHECK-NEXT:             }
515986d0dbaSyronglin // CHECK-NEXT:            },
516986d0dbaSyronglin // CHECK-NEXT:            "type": {
517986d0dbaSyronglin // CHECK-NEXT:             "qualType": "const A"
518986d0dbaSyronglin // CHECK-NEXT:            },
519986d0dbaSyronglin // CHECK-NEXT:            "valueCategory": "prvalue",
520986d0dbaSyronglin // CHECK-NEXT:            "castKind": "NoOp",
521986d0dbaSyronglin // CHECK-NEXT:            "inner": [
522986d0dbaSyronglin // CHECK-NEXT:             {
523986d0dbaSyronglin // CHECK-NEXT:              "id": "0x{{.*}}",
524986d0dbaSyronglin // CHECK-NEXT:              "kind": "CXXFunctionalCastExpr",
525986d0dbaSyronglin // CHECK-NEXT:              "range": {
526986d0dbaSyronglin // CHECK-NEXT:               "begin": {
527986d0dbaSyronglin // CHECK-NEXT:                "offset": 147,
528986d0dbaSyronglin // CHECK-NEXT:                "col": 16,
529986d0dbaSyronglin // CHECK-NEXT:                "tokLen": 1
530986d0dbaSyronglin // CHECK-NEXT:               },
531986d0dbaSyronglin // CHECK-NEXT:               "end": {
532986d0dbaSyronglin // CHECK-NEXT:                "offset": 152,
533986d0dbaSyronglin // CHECK-NEXT:                "col": 21,
534986d0dbaSyronglin // CHECK-NEXT:                "tokLen": 1
535986d0dbaSyronglin // CHECK-NEXT:               }
536986d0dbaSyronglin // CHECK-NEXT:              },
537986d0dbaSyronglin // CHECK-NEXT:              "type": {
538986d0dbaSyronglin // CHECK-NEXT:               "qualType": "A"
539986d0dbaSyronglin // CHECK-NEXT:              },
540986d0dbaSyronglin // CHECK-NEXT:              "valueCategory": "prvalue",
541986d0dbaSyronglin // CHECK-NEXT:              "castKind": "NoOp",
542986d0dbaSyronglin // CHECK-NEXT:              "inner": [
543986d0dbaSyronglin // CHECK-NEXT:               {
544986d0dbaSyronglin // CHECK-NEXT:                "id": "0x{{.*}}",
545986d0dbaSyronglin // CHECK-NEXT:                "kind": "InitListExpr",
546986d0dbaSyronglin // CHECK-NEXT:                "range": {
547986d0dbaSyronglin // CHECK-NEXT:                 "begin": {
548986d0dbaSyronglin // CHECK-NEXT:                  "offset": 148,
549986d0dbaSyronglin // CHECK-NEXT:                  "col": 17,
550986d0dbaSyronglin // CHECK-NEXT:                  "tokLen": 1
551986d0dbaSyronglin // CHECK-NEXT:                 },
552986d0dbaSyronglin // CHECK-NEXT:                 "end": {
553986d0dbaSyronglin // CHECK-NEXT:                  "offset": 152,
554986d0dbaSyronglin // CHECK-NEXT:                  "col": 21,
555986d0dbaSyronglin // CHECK-NEXT:                  "tokLen": 1
556986d0dbaSyronglin // CHECK-NEXT:                 }
557986d0dbaSyronglin // CHECK-NEXT:                },
558986d0dbaSyronglin // CHECK-NEXT:                "type": {
559986d0dbaSyronglin // CHECK-NEXT:                 "qualType": "A"
560986d0dbaSyronglin // CHECK-NEXT:                },
561986d0dbaSyronglin // CHECK-NEXT:                "valueCategory": "prvalue",
562986d0dbaSyronglin // CHECK-NEXT:                "inner": [
563986d0dbaSyronglin // CHECK-NEXT:                 {
564986d0dbaSyronglin // CHECK-NEXT:                  "id": "0x{{.*}}",
565986d0dbaSyronglin // CHECK-NEXT:                  "kind": "InitListExpr",
566986d0dbaSyronglin // CHECK-NEXT:                  "range": {
567986d0dbaSyronglin // CHECK-NEXT:                   "begin": {
568986d0dbaSyronglin // CHECK-NEXT:                    "offset": 149,
569986d0dbaSyronglin // CHECK-NEXT:                    "col": 18,
570986d0dbaSyronglin // CHECK-NEXT:                    "tokLen": 1
571986d0dbaSyronglin // CHECK-NEXT:                   },
572986d0dbaSyronglin // CHECK-NEXT:                   "end": {
573986d0dbaSyronglin // CHECK-NEXT:                    "offset": 151,
574986d0dbaSyronglin // CHECK-NEXT:                    "col": 20,
575986d0dbaSyronglin // CHECK-NEXT:                    "tokLen": 1
576986d0dbaSyronglin // CHECK-NEXT:                   }
577986d0dbaSyronglin // CHECK-NEXT:                  },
578986d0dbaSyronglin // CHECK-NEXT:                  "type": {
579986d0dbaSyronglin // CHECK-NEXT:                   "qualType": "int[1]"
580986d0dbaSyronglin // CHECK-NEXT:                  },
581986d0dbaSyronglin // CHECK-NEXT:                  "valueCategory": "prvalue",
582986d0dbaSyronglin // CHECK-NEXT:                  "inner": [
583986d0dbaSyronglin // CHECK-NEXT:                   {
584986d0dbaSyronglin // CHECK-NEXT:                    "id": "0x{{.*}}",
585986d0dbaSyronglin // CHECK-NEXT:                    "kind": "IntegerLiteral",
586986d0dbaSyronglin // CHECK-NEXT:                    "range": {
587986d0dbaSyronglin // CHECK-NEXT:                     "begin": {
588986d0dbaSyronglin // CHECK-NEXT:                      "offset": 150,
589986d0dbaSyronglin // CHECK-NEXT:                      "col": 19,
590986d0dbaSyronglin // CHECK-NEXT:                      "tokLen": 1
591986d0dbaSyronglin // CHECK-NEXT:                     },
592986d0dbaSyronglin // CHECK-NEXT:                     "end": {
593986d0dbaSyronglin // CHECK-NEXT:                      "offset": 150,
594986d0dbaSyronglin // CHECK-NEXT:                      "col": 19,
595986d0dbaSyronglin // CHECK-NEXT:                      "tokLen": 1
596986d0dbaSyronglin // CHECK-NEXT:                     }
597986d0dbaSyronglin // CHECK-NEXT:                    },
598986d0dbaSyronglin // CHECK-NEXT:                    "type": {
599986d0dbaSyronglin // CHECK-NEXT:                     "qualType": "int"
600986d0dbaSyronglin // CHECK-NEXT:                    },
601986d0dbaSyronglin // CHECK-NEXT:                    "valueCategory": "prvalue",
602986d0dbaSyronglin // CHECK-NEXT:                    "value": "0"
603986d0dbaSyronglin // CHECK-NEXT:                   }
604986d0dbaSyronglin // CHECK-NEXT:                  ]
605986d0dbaSyronglin // CHECK-NEXT:                 }
606986d0dbaSyronglin // CHECK-NEXT:                ]
607986d0dbaSyronglin // CHECK-NEXT:               }
608986d0dbaSyronglin // CHECK-NEXT:              ]
609986d0dbaSyronglin // CHECK-NEXT:             }
610986d0dbaSyronglin // CHECK-NEXT:            ]
611986d0dbaSyronglin // CHECK-NEXT:           }
612986d0dbaSyronglin // CHECK-NEXT:          ]
613986d0dbaSyronglin // CHECK-NEXT:         }
614986d0dbaSyronglin // CHECK-NEXT:        ]
615986d0dbaSyronglin // CHECK-NEXT:       }
616986d0dbaSyronglin // CHECK-NEXT:      ]
617986d0dbaSyronglin // CHECK-NEXT:     }
618986d0dbaSyronglin // CHECK-NEXT:    ]
619986d0dbaSyronglin // CHECK-NEXT:   },
620986d0dbaSyronglin // CHECK-NEXT:   {
621986d0dbaSyronglin // CHECK-NEXT:    "id": "0x{{.*}}",
622986d0dbaSyronglin // CHECK-NEXT:    "kind": "FunctionDecl",
623986d0dbaSyronglin // CHECK-NEXT:    "loc": {
624986d0dbaSyronglin // CHECK-NEXT:     "offset": 164,
625986d0dbaSyronglin // CHECK-NEXT:     "line": 11,
626986d0dbaSyronglin // CHECK-NEXT:     "col": 6,
627986d0dbaSyronglin // CHECK-NEXT:     "tokLen": 4
628986d0dbaSyronglin // CHECK-NEXT:    },
629986d0dbaSyronglin // CHECK-NEXT:    "range": {
630986d0dbaSyronglin // CHECK-NEXT:     "begin": {
631986d0dbaSyronglin // CHECK-NEXT:      "offset": 159,
632986d0dbaSyronglin // CHECK-NEXT:      "col": 1,
633986d0dbaSyronglin // CHECK-NEXT:      "tokLen": 4
634986d0dbaSyronglin // CHECK-NEXT:     },
635986d0dbaSyronglin // CHECK-NEXT:     "end": {
636986d0dbaSyronglin // CHECK-NEXT:      "offset": 182,
637986d0dbaSyronglin // CHECK-NEXT:      "line": 13,
638986d0dbaSyronglin // CHECK-NEXT:      "col": 1,
639986d0dbaSyronglin // CHECK-NEXT:      "tokLen": 1
640986d0dbaSyronglin // CHECK-NEXT:     }
641986d0dbaSyronglin // CHECK-NEXT:    },
642986d0dbaSyronglin // CHECK-NEXT:    "name": "test",
643986d0dbaSyronglin // CHECK-NEXT:    "mangledName": "_Z4testv",
644986d0dbaSyronglin // CHECK-NEXT:    "type": {
645986d0dbaSyronglin // CHECK-NEXT:     "qualType": "void ()"
646986d0dbaSyronglin // CHECK-NEXT:    },
647986d0dbaSyronglin // CHECK-NEXT:    "inner": [
648986d0dbaSyronglin // CHECK-NEXT:     {
649986d0dbaSyronglin // CHECK-NEXT:      "id": "0x{{.*}}",
650986d0dbaSyronglin // CHECK-NEXT:      "kind": "CompoundStmt",
651986d0dbaSyronglin // CHECK-NEXT:      "range": {
652986d0dbaSyronglin // CHECK-NEXT:       "begin": {
653986d0dbaSyronglin // CHECK-NEXT:        "offset": 171,
654986d0dbaSyronglin // CHECK-NEXT:        "line": 11,
655986d0dbaSyronglin // CHECK-NEXT:        "col": 13,
656986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 1
657986d0dbaSyronglin // CHECK-NEXT:       },
658986d0dbaSyronglin // CHECK-NEXT:       "end": {
659986d0dbaSyronglin // CHECK-NEXT:        "offset": 182,
660986d0dbaSyronglin // CHECK-NEXT:        "line": 13,
661986d0dbaSyronglin // CHECK-NEXT:        "col": 1,
662986d0dbaSyronglin // CHECK-NEXT:        "tokLen": 1
663986d0dbaSyronglin // CHECK-NEXT:       }
664986d0dbaSyronglin // CHECK-NEXT:      },
665986d0dbaSyronglin // CHECK-NEXT:      "inner": [
666986d0dbaSyronglin // CHECK-NEXT:       {
667986d0dbaSyronglin // CHECK-NEXT:        "id": "0x{{.*}}",
668986d0dbaSyronglin // CHECK-NEXT:        "kind": "DeclStmt",
669986d0dbaSyronglin // CHECK-NEXT:        "range": {
670986d0dbaSyronglin // CHECK-NEXT:         "begin": {
671986d0dbaSyronglin // CHECK-NEXT:          "offset": 175,
672986d0dbaSyronglin // CHECK-NEXT:          "line": 12,
673986d0dbaSyronglin // CHECK-NEXT:          "col": 3,
674986d0dbaSyronglin // CHECK-NEXT:          "tokLen": 1
675986d0dbaSyronglin // CHECK-NEXT:         },
676986d0dbaSyronglin // CHECK-NEXT:         "end": {
677986d0dbaSyronglin // CHECK-NEXT:          "offset": 180,
678986d0dbaSyronglin // CHECK-NEXT:          "col": 8,
679986d0dbaSyronglin // CHECK-NEXT:          "tokLen": 1
680986d0dbaSyronglin // CHECK-NEXT:         }
681986d0dbaSyronglin // CHECK-NEXT:        },
682986d0dbaSyronglin // CHECK-NEXT:        "inner": [
683986d0dbaSyronglin // CHECK-NEXT:         {
684986d0dbaSyronglin // CHECK-NEXT:          "id": "0x{{.*}}",
685986d0dbaSyronglin // CHECK-NEXT:          "kind": "VarDecl",
686986d0dbaSyronglin // CHECK-NEXT:          "loc": {
687986d0dbaSyronglin // CHECK-NEXT:           "offset": 177,
688986d0dbaSyronglin // CHECK-NEXT:           "col": 5,
689986d0dbaSyronglin // CHECK-NEXT:           "tokLen": 1
690986d0dbaSyronglin // CHECK-NEXT:          },
691986d0dbaSyronglin // CHECK-NEXT:          "range": {
692986d0dbaSyronglin // CHECK-NEXT:           "begin": {
693986d0dbaSyronglin // CHECK-NEXT:            "offset": 175,
694986d0dbaSyronglin // CHECK-NEXT:            "col": 3,
695986d0dbaSyronglin // CHECK-NEXT:            "tokLen": 1
696986d0dbaSyronglin // CHECK-NEXT:           },
697986d0dbaSyronglin // CHECK-NEXT:           "end": {
698986d0dbaSyronglin // CHECK-NEXT:            "offset": 179,
699986d0dbaSyronglin // CHECK-NEXT:            "col": 7,
700986d0dbaSyronglin // CHECK-NEXT:            "tokLen": 1
701986d0dbaSyronglin // CHECK-NEXT:           }
702986d0dbaSyronglin // CHECK-NEXT:          },
703986d0dbaSyronglin // CHECK-NEXT:          "name": "b",
704986d0dbaSyronglin // CHECK-NEXT:          "type": {
705986d0dbaSyronglin // CHECK-NEXT:           "qualType": "B"
706986d0dbaSyronglin // CHECK-NEXT:          },
707986d0dbaSyronglin // CHECK-NEXT:          "init": "list",
708986d0dbaSyronglin // CHECK-NEXT:          "inner": [
709986d0dbaSyronglin // CHECK-NEXT:           {
710986d0dbaSyronglin // CHECK-NEXT:            "id": "0x{{.*}}",
711986d0dbaSyronglin // CHECK-NEXT:            "kind": "InitListExpr",
712986d0dbaSyronglin // CHECK-NEXT:            "range": {
713986d0dbaSyronglin // CHECK-NEXT:             "begin": {
714986d0dbaSyronglin // CHECK-NEXT:              "offset": 178,
715986d0dbaSyronglin // CHECK-NEXT:              "col": 6,
716986d0dbaSyronglin // CHECK-NEXT:              "tokLen": 1
717986d0dbaSyronglin // CHECK-NEXT:             },
718986d0dbaSyronglin // CHECK-NEXT:             "end": {
719986d0dbaSyronglin // CHECK-NEXT:              "offset": 179,
720986d0dbaSyronglin // CHECK-NEXT:              "col": 7,
721986d0dbaSyronglin // CHECK-NEXT:              "tokLen": 1
722986d0dbaSyronglin // CHECK-NEXT:             }
723986d0dbaSyronglin // CHECK-NEXT:            },
724986d0dbaSyronglin // CHECK-NEXT:            "type": {
725986d0dbaSyronglin // CHECK-NEXT:             "qualType": "B"
726986d0dbaSyronglin // CHECK-NEXT:            },
727986d0dbaSyronglin // CHECK-NEXT:            "valueCategory": "prvalue",
728986d0dbaSyronglin // CHECK-NEXT:            "inner": [
729986d0dbaSyronglin // CHECK-NEXT:             {
730986d0dbaSyronglin // CHECK-NEXT:              "id": "0x{{.*}}",
731986d0dbaSyronglin // CHECK-NEXT:              "kind": "CXXDefaultInitExpr",
732986d0dbaSyronglin // CHECK-NEXT:              "range": {
733986d0dbaSyronglin // CHECK-NEXT:               "begin": {
734986d0dbaSyronglin // CHECK-NEXT:                "offset": 179,
735986d0dbaSyronglin // CHECK-NEXT:                "col": 7,
736986d0dbaSyronglin // CHECK-NEXT:                "tokLen": 1
737986d0dbaSyronglin // CHECK-NEXT:               },
738986d0dbaSyronglin // CHECK-NEXT:               "end": {
739986d0dbaSyronglin // CHECK-NEXT:                "offset": 179,
740986d0dbaSyronglin // CHECK-NEXT:                "col": 7,
741986d0dbaSyronglin // CHECK-NEXT:                "tokLen": 1
742986d0dbaSyronglin // CHECK-NEXT:               }
743986d0dbaSyronglin // CHECK-NEXT:              },
744986d0dbaSyronglin // CHECK-NEXT:              "type": {
745986d0dbaSyronglin // CHECK-NEXT:               "qualType": "const A"
746986d0dbaSyronglin // CHECK-NEXT:              },
747986d0dbaSyronglin // CHECK-NEXT:              "valueCategory": "lvalue",
748986d0dbaSyronglin // CHECK-NEXT:              "hasRewrittenInit": true,
749986d0dbaSyronglin // CHECK-NEXT:              "inner": [
750986d0dbaSyronglin // CHECK-NEXT:               {
751986d0dbaSyronglin // CHECK-NEXT:                "id": "0x{{.*}}",
752986d0dbaSyronglin // CHECK-NEXT:                "kind": "ExprWithCleanups",
753986d0dbaSyronglin // CHECK-NEXT:                "range": {
754986d0dbaSyronglin // CHECK-NEXT:                 "begin": {
755986d0dbaSyronglin // CHECK-NEXT:                  "offset": 147,
756986d0dbaSyronglin // CHECK-NEXT:                  "line": 8,
757986d0dbaSyronglin // CHECK-NEXT:                  "col": 16,
758986d0dbaSyronglin // CHECK-NEXT:                  "tokLen": 1
759986d0dbaSyronglin // CHECK-NEXT:                 },
760986d0dbaSyronglin // CHECK-NEXT:                 "end": {
761986d0dbaSyronglin // CHECK-NEXT:                  "offset": 152,
762986d0dbaSyronglin // CHECK-NEXT:                  "col": 21,
763986d0dbaSyronglin // CHECK-NEXT:                  "tokLen": 1
764986d0dbaSyronglin // CHECK-NEXT:                 }
765986d0dbaSyronglin // CHECK-NEXT:                },
766986d0dbaSyronglin // CHECK-NEXT:                "type": {
767986d0dbaSyronglin // CHECK-NEXT:                 "qualType": "const A"
768986d0dbaSyronglin // CHECK-NEXT:                },
769986d0dbaSyronglin // CHECK-NEXT:                "valueCategory": "lvalue",
770986d0dbaSyronglin // CHECK-NEXT:                "inner": [
771986d0dbaSyronglin // CHECK-NEXT:                 {
772986d0dbaSyronglin // CHECK-NEXT:                  "id": "0x{{.*}}",
773986d0dbaSyronglin // CHECK-NEXT:                  "kind": "MaterializeTemporaryExpr",
774986d0dbaSyronglin // CHECK-NEXT:                  "range": {
775986d0dbaSyronglin // CHECK-NEXT:                   "begin": {
776986d0dbaSyronglin // CHECK-NEXT:                    "offset": 147,
777986d0dbaSyronglin // CHECK-NEXT:                    "col": 16,
778986d0dbaSyronglin // CHECK-NEXT:                    "tokLen": 1
779986d0dbaSyronglin // CHECK-NEXT:                   },
780986d0dbaSyronglin // CHECK-NEXT:                   "end": {
781986d0dbaSyronglin // CHECK-NEXT:                    "offset": 152,
782986d0dbaSyronglin // CHECK-NEXT:                    "col": 21,
783986d0dbaSyronglin // CHECK-NEXT:                    "tokLen": 1
784986d0dbaSyronglin // CHECK-NEXT:                   }
785986d0dbaSyronglin // CHECK-NEXT:                  },
786986d0dbaSyronglin // CHECK-NEXT:                  "type": {
787986d0dbaSyronglin // CHECK-NEXT:                   "qualType": "const A"
788986d0dbaSyronglin // CHECK-NEXT:                  },
789986d0dbaSyronglin // CHECK-NEXT:                  "valueCategory": "lvalue",
790986d0dbaSyronglin // CHECK-NEXT:                  "extendingDecl": {
791986d0dbaSyronglin // CHECK-NEXT:                   "id": "0x{{.*}}",
792*06013703Syronglin // CHECK-NEXT:                   "kind": "VarDecl",
793*06013703Syronglin // CHECK-NEXT:                   "name": "b",
794986d0dbaSyronglin // CHECK-NEXT:                   "type": {
795*06013703Syronglin // CHECK-NEXT:                    "qualType": "B"
796986d0dbaSyronglin // CHECK-NEXT:                   }
797986d0dbaSyronglin // CHECK-NEXT:                  },
798986d0dbaSyronglin // CHECK-NEXT:                  "storageDuration": "automatic",
799986d0dbaSyronglin // CHECK-NEXT:                  "boundToLValueRef": true,
800986d0dbaSyronglin // CHECK-NEXT:                  "inner": [
801986d0dbaSyronglin // CHECK-NEXT:                   {
802986d0dbaSyronglin // CHECK-NEXT:                    "id": "0x{{.*}}",
803986d0dbaSyronglin // CHECK-NEXT:                    "kind": "ImplicitCastExpr",
804986d0dbaSyronglin // CHECK-NEXT:                    "range": {
805986d0dbaSyronglin // CHECK-NEXT:                     "begin": {
806986d0dbaSyronglin // CHECK-NEXT:                      "offset": 147,
807986d0dbaSyronglin // CHECK-NEXT:                      "col": 16,
808986d0dbaSyronglin // CHECK-NEXT:                      "tokLen": 1
809986d0dbaSyronglin // CHECK-NEXT:                     },
810986d0dbaSyronglin // CHECK-NEXT:                     "end": {
811986d0dbaSyronglin // CHECK-NEXT:                      "offset": 152,
812986d0dbaSyronglin // CHECK-NEXT:                      "col": 21,
813986d0dbaSyronglin // CHECK-NEXT:                      "tokLen": 1
814986d0dbaSyronglin // CHECK-NEXT:                     }
815986d0dbaSyronglin // CHECK-NEXT:                    },
816986d0dbaSyronglin // CHECK-NEXT:                    "type": {
817986d0dbaSyronglin // CHECK-NEXT:                     "qualType": "const A"
818986d0dbaSyronglin // CHECK-NEXT:                    },
819986d0dbaSyronglin // CHECK-NEXT:                    "valueCategory": "prvalue",
820986d0dbaSyronglin // CHECK-NEXT:                    "castKind": "NoOp",
821986d0dbaSyronglin // CHECK-NEXT:                    "inner": [
822986d0dbaSyronglin // CHECK-NEXT:                     {
823986d0dbaSyronglin // CHECK-NEXT:                      "id": "0x{{.*}}",
824986d0dbaSyronglin // CHECK-NEXT:                      "kind": "CXXFunctionalCastExpr",
825986d0dbaSyronglin // CHECK-NEXT:                      "range": {
826986d0dbaSyronglin // CHECK-NEXT:                       "begin": {
827986d0dbaSyronglin // CHECK-NEXT:                        "offset": 147,
828986d0dbaSyronglin // CHECK-NEXT:                        "col": 16,
829986d0dbaSyronglin // CHECK-NEXT:                        "tokLen": 1
830986d0dbaSyronglin // CHECK-NEXT:                       },
831986d0dbaSyronglin // CHECK-NEXT:                       "end": {
832986d0dbaSyronglin // CHECK-NEXT:                        "offset": 152,
833986d0dbaSyronglin // CHECK-NEXT:                        "col": 21,
834986d0dbaSyronglin // CHECK-NEXT:                        "tokLen": 1
835986d0dbaSyronglin // CHECK-NEXT:                       }
836986d0dbaSyronglin // CHECK-NEXT:                      },
837986d0dbaSyronglin // CHECK-NEXT:                      "type": {
838986d0dbaSyronglin // CHECK-NEXT:                       "qualType": "A"
839986d0dbaSyronglin // CHECK-NEXT:                      },
840986d0dbaSyronglin // CHECK-NEXT:                      "valueCategory": "prvalue",
841986d0dbaSyronglin // CHECK-NEXT:                      "castKind": "NoOp",
842986d0dbaSyronglin // CHECK-NEXT:                      "inner": [
843986d0dbaSyronglin // CHECK-NEXT:                       {
844986d0dbaSyronglin // CHECK-NEXT:                        "id": "0x{{.*}}",
845986d0dbaSyronglin // CHECK-NEXT:                        "kind": "InitListExpr",
846986d0dbaSyronglin // CHECK-NEXT:                        "range": {
847986d0dbaSyronglin // CHECK-NEXT:                         "begin": {
848986d0dbaSyronglin // CHECK-NEXT:                          "offset": 148,
849986d0dbaSyronglin // CHECK-NEXT:                          "col": 17,
850986d0dbaSyronglin // CHECK-NEXT:                          "tokLen": 1
851986d0dbaSyronglin // CHECK-NEXT:                         },
852986d0dbaSyronglin // CHECK-NEXT:                         "end": {
853986d0dbaSyronglin // CHECK-NEXT:                          "offset": 152,
854986d0dbaSyronglin // CHECK-NEXT:                          "col": 21,
855986d0dbaSyronglin // CHECK-NEXT:                          "tokLen": 1
856986d0dbaSyronglin // CHECK-NEXT:                         }
857986d0dbaSyronglin // CHECK-NEXT:                        },
858986d0dbaSyronglin // CHECK-NEXT:                        "type": {
859986d0dbaSyronglin // CHECK-NEXT:                         "qualType": "A"
860986d0dbaSyronglin // CHECK-NEXT:                        },
861986d0dbaSyronglin // CHECK-NEXT:                        "valueCategory": "prvalue",
862986d0dbaSyronglin // CHECK-NEXT:                        "inner": [
863986d0dbaSyronglin // CHECK-NEXT:                         {
864986d0dbaSyronglin // CHECK-NEXT:                          "id": "0x{{.*}}",
865986d0dbaSyronglin // CHECK-NEXT:                          "kind": "InitListExpr",
866986d0dbaSyronglin // CHECK-NEXT:                          "range": {
867986d0dbaSyronglin // CHECK-NEXT:                           "begin": {
868986d0dbaSyronglin // CHECK-NEXT:                            "offset": 149,
869986d0dbaSyronglin // CHECK-NEXT:                            "col": 18,
870986d0dbaSyronglin // CHECK-NEXT:                            "tokLen": 1
871986d0dbaSyronglin // CHECK-NEXT:                           },
872986d0dbaSyronglin // CHECK-NEXT:                           "end": {
873986d0dbaSyronglin // CHECK-NEXT:                            "offset": 151,
874986d0dbaSyronglin // CHECK-NEXT:                            "col": 20,
875986d0dbaSyronglin // CHECK-NEXT:                            "tokLen": 1
876986d0dbaSyronglin // CHECK-NEXT:                           }
877986d0dbaSyronglin // CHECK-NEXT:                          },
878986d0dbaSyronglin // CHECK-NEXT:                          "type": {
879986d0dbaSyronglin // CHECK-NEXT:                           "qualType": "int[1]"
880986d0dbaSyronglin // CHECK-NEXT:                          },
881986d0dbaSyronglin // CHECK-NEXT:                          "valueCategory": "prvalue",
882986d0dbaSyronglin // CHECK-NEXT:                          "inner": [
883986d0dbaSyronglin // CHECK-NEXT:                           {
884986d0dbaSyronglin // CHECK-NEXT:                            "id": "0x{{.*}}",
885986d0dbaSyronglin // CHECK-NEXT:                            "kind": "IntegerLiteral",
886986d0dbaSyronglin // CHECK-NEXT:                            "range": {
887986d0dbaSyronglin // CHECK-NEXT:                             "begin": {
888986d0dbaSyronglin // CHECK-NEXT:                              "offset": 150,
889986d0dbaSyronglin // CHECK-NEXT:                              "col": 19,
890986d0dbaSyronglin // CHECK-NEXT:                              "tokLen": 1
891986d0dbaSyronglin // CHECK-NEXT:                             },
892986d0dbaSyronglin // CHECK-NEXT:                             "end": {
893986d0dbaSyronglin // CHECK-NEXT:                              "offset": 150,
894986d0dbaSyronglin // CHECK-NEXT:                              "col": 19,
895986d0dbaSyronglin // CHECK-NEXT:                              "tokLen": 1
896986d0dbaSyronglin // CHECK-NEXT:                             }
897986d0dbaSyronglin // CHECK-NEXT:                            },
898986d0dbaSyronglin // CHECK-NEXT:                            "type": {
899986d0dbaSyronglin // CHECK-NEXT:                             "qualType": "int"
900986d0dbaSyronglin // CHECK-NEXT:                            },
901986d0dbaSyronglin // CHECK-NEXT:                            "valueCategory": "prvalue",
902986d0dbaSyronglin // CHECK-NEXT:                            "value": "0"
903986d0dbaSyronglin // CHECK-NEXT:                           }
904986d0dbaSyronglin // CHECK-NEXT:                          ]
905986d0dbaSyronglin // CHECK-NEXT:                         }
906986d0dbaSyronglin // CHECK-NEXT:                        ]
907986d0dbaSyronglin // CHECK-NEXT:                       }
908986d0dbaSyronglin // CHECK-NEXT:                      ]
909986d0dbaSyronglin // CHECK-NEXT:                     }
910986d0dbaSyronglin // CHECK-NEXT:                    ]
911986d0dbaSyronglin // CHECK-NEXT:                   }
912986d0dbaSyronglin // CHECK-NEXT:                  ]
913986d0dbaSyronglin // CHECK-NEXT:                 }
914986d0dbaSyronglin // CHECK-NEXT:                ]
915986d0dbaSyronglin // CHECK-NEXT:               }
916986d0dbaSyronglin // CHECK-NEXT:              ]
917986d0dbaSyronglin // CHECK-NEXT:             }
918986d0dbaSyronglin // CHECK-NEXT:            ]
919986d0dbaSyronglin // CHECK-NEXT:           }
920986d0dbaSyronglin // CHECK-NEXT:          ]
921986d0dbaSyronglin // CHECK-NEXT:         }
922986d0dbaSyronglin // CHECK-NEXT:        ]
923986d0dbaSyronglin // CHECK-NEXT:       }
924986d0dbaSyronglin // CHECK-NEXT:      ]
925986d0dbaSyronglin // CHECK-NEXT:     }
926986d0dbaSyronglin // CHECK-NEXT:    ]
927986d0dbaSyronglin // CHECK-NEXT:   }
928986d0dbaSyronglin // CHECK-NEXT:  ]
929986d0dbaSyronglin // CHECK-NEXT: }
930