[flang][cuda] Adapt ExternalNameConversion to work in gpu module (#117039)
[llvm-project.git] / clang / test / AST / ast-dump-types-json.cpp
blobc1bb9266fa86932bb9e09e71e803a1795f58d5b2
1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only -ast-dump=json -ast-dump-filter Test %s | FileCheck %s
3 namespace NS {
4 struct S {};
7 struct T {
8 int I;
9 void F();
12 typedef struct T TestElaboratedType1;
13 typedef NS::S TestElaboratedType2;
15 #define CDECL __attribute__((cdecl))
16 typedef void (CDECL *TestMacroQualifiedType)();
18 typedef void (T::* TestMemberFunctionPointerType)();
19 typedef int T::*TestMemberDataPointerType;
21 typedef int TestQualTypePrinting(const char* c);
23 typedef int TestUsingShadowDeclType;
24 namespace TestNamespaceWithUsingShadowType {
25 using ::TestUsingShadowDeclType;
28 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
30 // CHECK-NOT: {{^}}Dumping
31 // CHECK: "kind": "TypedefDecl",
32 // CHECK-NEXT: "loc": {
33 // CHECK-NEXT: "offset": {{[0-9]+}},
34 // CHECK-NEXT: "file": "{{.*}}",
35 // CHECK-NEXT: "line": 12,
36 // CHECK-NEXT: "col": 18,
37 // CHECK-NEXT: "tokLen": 19
38 // CHECK-NEXT: },
39 // CHECK-NEXT: "range": {
40 // CHECK-NEXT: "begin": {
41 // CHECK-NEXT: "offset": {{[0-9]+}},
42 // CHECK-NEXT: "col": 1,
43 // CHECK-NEXT: "tokLen": 7
44 // CHECK-NEXT: },
45 // CHECK-NEXT: "end": {
46 // CHECK-NEXT: "offset": {{[0-9]+}},
47 // CHECK-NEXT: "col": 18,
48 // CHECK-NEXT: "tokLen": 19
49 // CHECK-NEXT: }
50 // CHECK-NEXT: },
51 // CHECK-NEXT: "name": "TestElaboratedType1",
52 // CHECK-NEXT: "type": {
53 // CHECK-NEXT: "desugaredQualType": "T",
54 // CHECK-NEXT: "qualType": "struct T"
55 // CHECK-NEXT: },
56 // CHECK-NEXT: "inner": [
57 // CHECK-NEXT: {
58 // CHECK-NEXT: "id": "0x{{.*}}",
59 // CHECK-NEXT: "kind": "ElaboratedType",
60 // CHECK-NEXT: "type": {
61 // CHECK-NEXT: "qualType": "struct T"
62 // CHECK-NEXT: },
63 // CHECK-NEXT: "inner": [
64 // CHECK-NEXT: {
65 // CHECK-NEXT: "id": "0x{{.*}}",
66 // CHECK-NEXT: "kind": "RecordType",
67 // CHECK-NEXT: "type": {
68 // CHECK-NEXT: "qualType": "T"
69 // CHECK-NEXT: },
70 // CHECK-NEXT: "decl": {
71 // CHECK-NEXT: "id": "0x{{.*}}",
72 // CHECK-NEXT: "kind": "CXXRecordDecl",
73 // CHECK-NEXT: "name": "T"
74 // CHECK-NEXT: }
75 // CHECK-NEXT: }
76 // CHECK-NEXT: ]
77 // CHECK-NEXT: }
78 // CHECK-NEXT: ]
79 // CHECK-NEXT: }
81 // CHECK-NOT: {{^}}Dumping
82 // CHECK: "kind": "TypedefDecl",
83 // CHECK-NEXT: "loc": {
84 // CHECK-NEXT: "offset": {{[0-9]+}},
85 // CHECK-NEXT: "file": "{{.*}}",
86 // CHECK-NEXT: "line": 13,
87 // CHECK-NEXT: "col": 15,
88 // CHECK-NEXT: "tokLen": 19
89 // CHECK-NEXT: },
90 // CHECK-NEXT: "range": {
91 // CHECK-NEXT: "begin": {
92 // CHECK-NEXT: "offset": {{[0-9]+}},
93 // CHECK-NEXT: "col": 1,
94 // CHECK-NEXT: "tokLen": 7
95 // CHECK-NEXT: },
96 // CHECK-NEXT: "end": {
97 // CHECK-NEXT: "offset": {{[0-9]+}},
98 // CHECK-NEXT: "col": 15,
99 // CHECK-NEXT: "tokLen": 19
100 // CHECK-NEXT: }
101 // CHECK-NEXT: },
102 // CHECK-NEXT: "name": "TestElaboratedType2",
103 // CHECK-NEXT: "type": {
104 // CHECK-NEXT: "qualType": "NS::S"
105 // CHECK-NEXT: },
106 // CHECK-NEXT: "inner": [
107 // CHECK-NEXT: {
108 // CHECK-NEXT: "id": "0x{{.*}}",
109 // CHECK-NEXT: "kind": "ElaboratedType",
110 // CHECK-NEXT: "type": {
111 // CHECK-NEXT: "qualType": "NS::S"
112 // CHECK-NEXT: },
113 // CHECK-NEXT: "qualifier": "NS::",
114 // CHECK-NEXT: "inner": [
115 // CHECK-NEXT: {
116 // CHECK-NEXT: "id": "0x{{.*}}",
117 // CHECK-NEXT: "kind": "RecordType",
118 // CHECK-NEXT: "type": {
119 // CHECK-NEXT: "qualType": "NS::S"
120 // CHECK-NEXT: },
121 // CHECK-NEXT: "decl": {
122 // CHECK-NEXT: "id": "0x{{.*}}",
123 // CHECK-NEXT: "kind": "CXXRecordDecl",
124 // CHECK-NEXT: "name": "S"
125 // CHECK-NEXT: }
126 // CHECK-NEXT: }
127 // CHECK-NEXT: ]
128 // CHECK-NEXT: }
129 // CHECK-NEXT: ]
130 // CHECK-NEXT: }
132 // CHECK-NOT: {{^}}Dumping
133 // CHECK: "kind": "TypedefDecl",
134 // CHECK-NEXT: "loc": {
135 // CHECK-NEXT: "offset": {{[0-9]+}},
136 // CHECK-NEXT: "file": "{{.*}}",
137 // CHECK-NEXT: "line": 16,
138 // CHECK-NEXT: "col": 22,
139 // CHECK-NEXT: "tokLen": 22
140 // CHECK-NEXT: },
141 // CHECK-NEXT: "range": {
142 // CHECK-NEXT: "begin": {
143 // CHECK-NEXT: "offset": {{[0-9]+}},
144 // CHECK-NEXT: "col": 1,
145 // CHECK-NEXT: "tokLen": 7
146 // CHECK-NEXT: },
147 // CHECK-NEXT: "end": {
148 // CHECK-NEXT: "offset": {{[0-9]+}},
149 // CHECK-NEXT: "col": 22,
150 // CHECK-NEXT: "tokLen": 22
151 // CHECK-NEXT: }
152 // CHECK-NEXT: },
153 // CHECK-NEXT: "name": "TestMacroQualifiedType",
154 // CHECK-NEXT: "type": {
155 // CHECK-NEXT: "qualType": "CDECL void (*)()"
156 // CHECK-NEXT: },
157 // CHECK-NEXT: "inner": [
158 // CHECK-NEXT: {
159 // CHECK-NEXT: "id": "0x{{.*}}",
160 // CHECK-NEXT: "kind": "PointerType",
161 // CHECK-NEXT: "type": {
162 // CHECK-NEXT: "qualType": "CDECL void (*)()"
163 // CHECK-NEXT: },
164 // CHECK-NEXT: "inner": [
165 // CHECK-NEXT: {
166 // CHECK-NEXT: "id": "0x{{.*}}",
167 // CHECK-NEXT: "kind": "MacroQualifiedType",
168 // CHECK-NEXT: "type": {
169 // CHECK-NEXT: "qualType": "CDECL void ()"
170 // CHECK-NEXT: },
171 // CHECK-NEXT: "macroName": "CDECL",
172 // CHECK-NEXT: "inner": [
173 // CHECK-NEXT: {
174 // CHECK-NEXT: "id": "0x{{.*}}",
175 // CHECK-NEXT: "kind": "AttributedType",
176 // CHECK-NEXT: "type": {
177 // CHECK-NEXT: "qualType": "void () __attribute__((cdecl))"
178 // CHECK-NEXT: },
179 // CHECK-NEXT: "inner": [
180 // CHECK-NEXT: {
181 // CHECK-NEXT: "id": "0x{{.*}}",
182 // CHECK-NEXT: "kind": "ParenType",
183 // CHECK-NEXT: "type": {
184 // CHECK-NEXT: "qualType": "void ()"
185 // CHECK-NEXT: },
186 // CHECK-NEXT: "inner": [
187 // CHECK-NEXT: {
188 // CHECK-NEXT: "id": "0x{{.*}}",
189 // CHECK-NEXT: "kind": "FunctionProtoType",
190 // CHECK-NEXT: "type": {
191 // CHECK-NEXT: "qualType": "void ()"
192 // CHECK-NEXT: },
193 // CHECK-NEXT: "cc": "cdecl",
194 // CHECK-NEXT: "inner": [
195 // CHECK-NEXT: {
196 // CHECK-NEXT: "id": "0x{{.*}}",
197 // CHECK-NEXT: "kind": "BuiltinType",
198 // CHECK-NEXT: "type": {
199 // CHECK-NEXT: "qualType": "void"
200 // CHECK-NEXT: }
201 // CHECK-NEXT: }
202 // CHECK-NEXT: ]
203 // CHECK-NEXT: }
204 // CHECK-NEXT: ]
205 // CHECK-NEXT: }
206 // CHECK-NEXT: ]
207 // CHECK-NEXT: }
208 // CHECK-NEXT: ]
209 // CHECK-NEXT: }
210 // CHECK-NEXT: ]
211 // CHECK-NEXT: }
212 // CHECK-NEXT: ]
213 // CHECK-NEXT: }
215 // CHECK-NOT: {{^}}Dumping
216 // CHECK: "kind": "TypedefDecl",
217 // CHECK-NEXT: "loc": {
218 // CHECK-NEXT: "offset": {{[0-9]+}},
219 // CHECK-NEXT: "file": "{{.*}}",
220 // CHECK-NEXT: "line": 18,
221 // CHECK-NEXT: "col": 20,
222 // CHECK-NEXT: "tokLen": 29
223 // CHECK-NEXT: },
224 // CHECK-NEXT: "range": {
225 // CHECK-NEXT: "begin": {
226 // CHECK-NEXT: "offset": {{[0-9]+}},
227 // CHECK-NEXT: "col": 1,
228 // CHECK-NEXT: "tokLen": 7
229 // CHECK-NEXT: },
230 // CHECK-NEXT: "end": {
231 // CHECK-NEXT: "offset": {{[0-9]+}},
232 // CHECK-NEXT: "col": 51,
233 // CHECK-NEXT: "tokLen": 1
234 // CHECK-NEXT: }
235 // CHECK-NEXT: },
236 // CHECK-NEXT: "name": "TestMemberFunctionPointerType",
237 // CHECK-NEXT: "type": {
238 // CHECK-NEXT: "qualType": "void (T::*)()"
239 // CHECK-NEXT: },
240 // CHECK-NEXT: "inner": [
241 // CHECK-NEXT: {
242 // CHECK-NEXT: "id": "0x{{.*}}",
243 // CHECK-NEXT: "kind": "MemberPointerType",
244 // CHECK-NEXT: "type": {
245 // CHECK-NEXT: "qualType": "void (T::*)()"
246 // CHECK-NEXT: },
247 // CHECK-NEXT: "isFunction": true,
248 // CHECK-NEXT: "inner": [
249 // CHECK-NEXT: {
250 // CHECK-NEXT: "id": "0x{{.*}}",
251 // CHECK-NEXT: "kind": "RecordType",
252 // CHECK-NEXT: "type": {
253 // CHECK-NEXT: "qualType": "T"
254 // CHECK-NEXT: },
255 // CHECK-NEXT: "decl": {
256 // CHECK-NEXT: "id": "0x{{.*}}",
257 // CHECK-NEXT: "kind": "CXXRecordDecl",
258 // CHECK-NEXT: "name": "T"
259 // CHECK-NEXT: }
260 // CHECK-NEXT: },
261 // CHECK-NEXT: {
262 // CHECK-NEXT: "id": "0x{{.*}}",
263 // CHECK-NEXT: "kind": "ParenType",
264 // CHECK-NEXT: "type": {
265 // CHECK-NEXT: "qualType": "void ()"
266 // CHECK-NEXT: },
267 // CHECK-NEXT: "inner": [
268 // CHECK-NEXT: {
269 // CHECK-NEXT: "id": "0x{{.*}}",
270 // CHECK-NEXT: "kind": "FunctionProtoType",
271 // CHECK-NEXT: "type": {
272 // CHECK-NEXT: "qualType": "void ()"
273 // CHECK-NEXT: },
274 // CHECK-NEXT: "cc": "cdecl",
275 // CHECK-NEXT: "inner": [
276 // CHECK-NEXT: {
277 // CHECK-NEXT: "id": "0x{{.*}}",
278 // CHECK-NEXT: "kind": "BuiltinType",
279 // CHECK-NEXT: "type": {
280 // CHECK-NEXT: "qualType": "void"
281 // CHECK-NEXT: }
282 // CHECK-NEXT: }
283 // CHECK-NEXT: ]
284 // CHECK-NEXT: }
285 // CHECK-NEXT: ]
286 // CHECK-NEXT: }
287 // CHECK-NEXT: ]
288 // CHECK-NEXT: }
289 // CHECK-NEXT: ]
290 // CHECK-NEXT: }
292 // CHECK-NOT: {{^}}Dumping
293 // CHECK: "kind": "TypedefDecl",
294 // CHECK-NEXT: "loc": {
295 // CHECK-NEXT: "offset": {{[0-9]+}},
296 // CHECK-NEXT: "file": "{{.*}}",
297 // CHECK-NEXT: "line": 19,
298 // CHECK-NEXT: "col": 17,
299 // CHECK-NEXT: "tokLen": 25
300 // CHECK-NEXT: },
301 // CHECK-NEXT: "range": {
302 // CHECK-NEXT: "begin": {
303 // CHECK-NEXT: "offset": {{[0-9]+}},
304 // CHECK-NEXT: "col": 1,
305 // CHECK-NEXT: "tokLen": 7
306 // CHECK-NEXT: },
307 // CHECK-NEXT: "end": {
308 // CHECK-NEXT: "offset": {{[0-9]+}},
309 // CHECK-NEXT: "col": 17,
310 // CHECK-NEXT: "tokLen": 25
311 // CHECK-NEXT: }
312 // CHECK-NEXT: },
313 // CHECK-NEXT: "name": "TestMemberDataPointerType",
314 // CHECK-NEXT: "type": {
315 // CHECK-NEXT: "qualType": "int T::*"
316 // CHECK-NEXT: },
317 // CHECK-NEXT: "inner": [
318 // CHECK-NEXT: {
319 // CHECK-NEXT: "id": "0x{{.*}}",
320 // CHECK-NEXT: "kind": "MemberPointerType",
321 // CHECK-NEXT: "type": {
322 // CHECK-NEXT: "qualType": "int T::*"
323 // CHECK-NEXT: },
324 // CHECK-NEXT: "isData": true,
325 // CHECK-NEXT: "inner": [
326 // CHECK-NEXT: {
327 // CHECK-NEXT: "id": "0x{{.*}}",
328 // CHECK-NEXT: "kind": "RecordType",
329 // CHECK-NEXT: "type": {
330 // CHECK-NEXT: "qualType": "T"
331 // CHECK-NEXT: },
332 // CHECK-NEXT: "decl": {
333 // CHECK-NEXT: "id": "0x{{.*}}",
334 // CHECK-NEXT: "kind": "CXXRecordDecl",
335 // CHECK-NEXT: "name": "T"
336 // CHECK-NEXT: }
337 // CHECK-NEXT: },
338 // CHECK-NEXT: {
339 // CHECK-NEXT: "id": "0x{{.*}}",
340 // CHECK-NEXT: "kind": "BuiltinType",
341 // CHECK-NEXT: "type": {
342 // CHECK-NEXT: "qualType": "int"
343 // CHECK-NEXT: }
344 // CHECK-NEXT: }
345 // CHECK-NEXT: ]
346 // CHECK-NEXT: }
347 // CHECK-NEXT: ]
348 // CHECK-NEXT: }
350 // CHECK-NOT: {{^}}Dumping
351 // CHECK: "kind": "TypedefDecl",
352 // CHECK-NEXT: "loc": {
353 // CHECK-NEXT: "offset": {{[0-9]+}},
354 // CHECK-NEXT: "file": "{{.*}}",
355 // CHECK-NEXT: "line": 21,
356 // CHECK-NEXT: "col": 13,
357 // CHECK-NEXT: "tokLen": 20
358 // CHECK-NEXT: },
359 // CHECK-NEXT: "range": {
360 // CHECK-NEXT: "begin": {
361 // CHECK-NEXT: "offset": {{[0-9]+}},
362 // CHECK-NEXT: "col": 1,
363 // CHECK-NEXT: "tokLen": 7
364 // CHECK-NEXT: },
365 // CHECK-NEXT: "end": {
366 // CHECK-NEXT: "offset": {{[0-9]+}},
367 // CHECK-NEXT: "col": 47,
368 // CHECK-NEXT: "tokLen": 1
369 // CHECK-NEXT: }
370 // CHECK-NEXT: },
371 // CHECK-NEXT: "name": "TestQualTypePrinting",
372 // CHECK-NEXT: "type": {
373 // CHECK-NEXT: "qualType": "int (const char *)"
374 // CHECK-NEXT: },
375 // CHECK-NEXT: "inner": [
376 // CHECK-NEXT: {
377 // CHECK-NEXT: "id": "0x{{.*}}",
378 // CHECK-NEXT: "kind": "FunctionProtoType",
379 // CHECK-NEXT: "type": {
380 // CHECK-NEXT: "qualType": "int (const char *)"
381 // CHECK-NEXT: },
382 // CHECK-NEXT: "cc": "cdecl",
383 // CHECK-NEXT: "inner": [
384 // CHECK-NEXT: {
385 // CHECK-NEXT: "id": "0x{{.*}}",
386 // CHECK-NEXT: "kind": "BuiltinType",
387 // CHECK-NEXT: "type": {
388 // CHECK-NEXT: "qualType": "int"
389 // CHECK-NEXT: }
390 // CHECK-NEXT: },
391 // CHECK-NEXT: {
392 // CHECK-NEXT: "id": "0x{{.*}}",
393 // CHECK-NEXT: "kind": "PointerType",
394 // CHECK-NEXT: "type": {
395 // CHECK-NEXT: "qualType": "const char *"
396 // CHECK-NEXT: },
397 // CHECK-NEXT: "inner": [
398 // CHECK-NEXT: {
399 // CHECK-NEXT: "id": "0x{{.*}}",
400 // CHECK-NEXT: "kind": "QualType",
401 // CHECK-NEXT: "type": {
402 // CHECK-NEXT: "qualType": "const char"
403 // CHECK-NEXT: },
404 // CHECK-NEXT: "qualifiers": "const",
405 // CHECK-NEXT: "inner": [
406 // CHECK-NEXT: {
407 // CHECK-NEXT: "id": "0x{{.*}}",
408 // CHECK-NEXT: "kind": "BuiltinType",
409 // CHECK-NEXT: "type": {
410 // CHECK-NEXT: "qualType": "char"
411 // CHECK-NEXT: }
412 // CHECK-NEXT: }
413 // CHECK-NEXT: ]
414 // CHECK-NEXT: }
415 // CHECK-NEXT: ]
416 // CHECK-NEXT: }
417 // CHECK-NEXT: ]
418 // CHECK-NEXT: }
419 // CHECK-NEXT: ]
420 // CHECK-NEXT: }
422 // CHECK-NOT: {{^}}Dumping
423 // CHECK: "kind": "TypedefDecl",
424 // CHECK-NEXT: "loc": {
425 // CHECK-NEXT: "offset": {{[0-9]+}},
426 // CHECK-NEXT: "file": "{{.*}}",
427 // CHECK-NEXT: "line": 23,
428 // CHECK-NEXT: "col": 13,
429 // CHECK-NEXT: "tokLen": 23
430 // CHECK-NEXT: },
431 // CHECK-NEXT: "range": {
432 // CHECK-NEXT: "begin": {
433 // CHECK-NEXT: "offset": {{[0-9]+}},
434 // CHECK-NEXT: "col": 1,
435 // CHECK-NEXT: "tokLen": 7
436 // CHECK-NEXT: },
437 // CHECK-NEXT: "end": {
438 // CHECK-NEXT: "offset": {{[0-9]+}},
439 // CHECK-NEXT: "col": 13,
440 // CHECK-NEXT: "tokLen": 23
441 // CHECK-NEXT: }
442 // CHECK-NEXT: },
443 // CHECK-NEXT: "name": "TestUsingShadowDeclType",
444 // CHECK-NEXT: "type": {
445 // CHECK-NEXT: "qualType": "int"
446 // CHECK-NEXT: },
447 // CHECK-NEXT: "inner": [
448 // CHECK-NEXT: {
449 // CHECK-NEXT: "id": "0x{{.*}}",
450 // CHECK-NEXT: "kind": "BuiltinType",
451 // CHECK-NEXT: "type": {
452 // CHECK-NEXT: "qualType": "int"
453 // CHECK-NEXT: }
454 // CHECK-NEXT: }
455 // CHECK-NEXT: ]
456 // CHECK-NEXT: }
458 // CHECK-NOT: {{^}}Dumping
459 // CHECK: "kind": "NamespaceDecl",
460 // CHECK-NEXT: "loc": {
461 // CHECK-NEXT: "offset": {{[0-9]+}},
462 // CHECK-NEXT: "file": "{{.*}}",
463 // CHECK-NEXT: "line": 24,
464 // CHECK-NEXT: "col": 11,
465 // CHECK-NEXT: "tokLen": 32
466 // CHECK-NEXT: },
467 // CHECK-NEXT: "range": {
468 // CHECK-NEXT: "begin": {
469 // CHECK-NEXT: "offset": {{[0-9]+}},
470 // CHECK-NEXT: "col": 1,
471 // CHECK-NEXT: "tokLen": 9
472 // CHECK-NEXT: },
473 // CHECK-NEXT: "end": {
474 // CHECK-NEXT: "offset": {{[0-9]+}},
475 // CHECK-NEXT: "line": 26,
476 // CHECK-NEXT: "col": 1,
477 // CHECK-NEXT: "tokLen": 1
478 // CHECK-NEXT: }
479 // CHECK-NEXT: },
480 // CHECK-NEXT: "name": "TestNamespaceWithUsingShadowType",
481 // CHECK-NEXT: "inner": [
482 // CHECK-NEXT: {
483 // CHECK-NEXT: "id": "0x{{.*}}",
484 // CHECK-NEXT: "kind": "UsingDecl",
485 // CHECK-NEXT: "loc": {
486 // CHECK-NEXT: "offset": {{[0-9]+}},
487 // CHECK-NEXT: "line": 25,
488 // CHECK-NEXT: "col": 9,
489 // CHECK-NEXT: "tokLen": 23
490 // CHECK-NEXT: },
491 // CHECK-NEXT: "range": {
492 // CHECK-NEXT: "begin": {
493 // CHECK-NEXT: "offset": {{[0-9]+}},
494 // CHECK-NEXT: "col": 1,
495 // CHECK-NEXT: "tokLen": 5
496 // CHECK-NEXT: },
497 // CHECK-NEXT: "end": {
498 // CHECK-NEXT: "offset": {{[0-9]+}},
499 // CHECK-NEXT: "col": 9,
500 // CHECK-NEXT: "tokLen": 23
501 // CHECK-NEXT: }
502 // CHECK-NEXT: },
503 // CHECK-NEXT: "name": "::TestUsingShadowDeclType"
504 // CHECK-NEXT: },
505 // CHECK-NEXT: {
506 // CHECK-NEXT: "id": "0x{{.*}}",
507 // CHECK-NEXT: "kind": "UsingShadowDecl",
508 // CHECK-NEXT: "loc": {
509 // CHECK-NEXT: "offset": {{[0-9]+}},
510 // CHECK-NEXT: "col": 9,
511 // CHECK-NEXT: "tokLen": 23
512 // CHECK-NEXT: },
513 // CHECK-NEXT: "range": {
514 // CHECK-NEXT: "begin": {
515 // CHECK-NEXT: "offset": {{[0-9]+}},
516 // CHECK-NEXT: "col": 9,
517 // CHECK-NEXT: "tokLen": 23
518 // CHECK-NEXT: },
519 // CHECK-NEXT: "end": {
520 // CHECK-NEXT: "offset": {{[0-9]+}},
521 // CHECK-NEXT: "col": 9,
522 // CHECK-NEXT: "tokLen": 23
523 // CHECK-NEXT: }
524 // CHECK-NEXT: },
525 // CHECK-NEXT: "isImplicit": true,
526 // CHECK-NEXT: "target": {
527 // CHECK-NEXT: "id": "0x{{.*}}",
528 // CHECK-NEXT: "kind": "TypedefDecl",
529 // CHECK-NEXT: "name": "TestUsingShadowDeclType"
530 // CHECK-NEXT: },
531 // CHECK-NEXT: "inner": [
532 // CHECK-NEXT: {
533 // CHECK-NEXT: "id": "0x0"
534 // CHECK-NEXT: }
535 // CHECK-NEXT: ]
536 // CHECK-NEXT: }
537 // CHECK-NEXT: ]
538 // CHECK-NEXT: }