1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json -ast-dump-filter Test %s | FileCheck %s
9 virtual void Test6(float, int = 12);
10 virtual void Test7() = 0;
13 struct T
: S
{ // T is not referenced, but S is
14 void Test6(float, int = 100) override
;
20 void U::Test1() {} // parent
24 void Test3(int a
, int b
);
25 void Test4(int a
, int b
= 12);
26 constexpr void Test5(void);
27 static void Test6(void);
28 extern void Test7(void);
29 inline void Test8(void);
30 void Test9(void) noexcept
;
31 void Test10(void) noexcept(false);
32 void Test11(void) noexcept(1);
38 void Test14(int, ...) {}
41 Test1(); // Causes this to be marked 'used'
44 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
47 // CHECK-NOT: {{^}}Dumping
48 // CHECK: "kind": "CXXMethodDecl",
49 // CHECK-NEXT: "loc": {
50 // CHECK-NEXT: "offset": {{[0-9]+}},
51 // CHECK-NEXT: "file": "{{.*}}",
52 // CHECK-NEXT: "line": 4,
53 // CHECK-NEXT: "col": 8,
54 // CHECK-NEXT: "tokLen": 5
56 // CHECK-NEXT: "range": {
57 // CHECK-NEXT: "begin": {
58 // CHECK-NEXT: "offset": {{[0-9]+}},
59 // CHECK-NEXT: "col": 3,
60 // CHECK-NEXT: "tokLen": 4
62 // CHECK-NEXT: "end": {
63 // CHECK-NEXT: "offset": {{[0-9]+}},
64 // CHECK-NEXT: "col": 14,
65 // CHECK-NEXT: "tokLen": 1
68 // CHECK-NEXT: "name": "Test1",
69 // CHECK-NEXT: "mangledName": "_ZN1S5Test1Ev",
70 // CHECK-NEXT: "type": {
71 // CHECK-NEXT: "qualType": "void ()"
76 // CHECK-NOT: {{^}}Dumping
77 // CHECK: "kind": "CXXMethodDecl",
78 // CHECK-NEXT: "loc": {
79 // CHECK-NEXT: "offset": {{[0-9]+}},
80 // CHECK-NEXT: "file": "{{.*}}",
81 // CHECK-NEXT: "line": 5,
82 // CHECK-NEXT: "col": 8,
83 // CHECK-NEXT: "tokLen": 5
85 // CHECK-NEXT: "range": {
86 // CHECK-NEXT: "begin": {
87 // CHECK-NEXT: "offset": {{[0-9]+}},
88 // CHECK-NEXT: "col": 3,
89 // CHECK-NEXT: "tokLen": 4
91 // CHECK-NEXT: "end": {
92 // CHECK-NEXT: "offset": {{[0-9]+}},
93 // CHECK-NEXT: "col": 16,
94 // CHECK-NEXT: "tokLen": 5
97 // CHECK-NEXT: "name": "Test2",
98 // CHECK-NEXT: "mangledName": "_ZNK1S5Test2Ev",
99 // CHECK-NEXT: "type": {
100 // CHECK-NEXT: "qualType": "void () const"
105 // CHECK-NOT: {{^}}Dumping
106 // CHECK: "kind": "CXXMethodDecl",
107 // CHECK-NEXT: "loc": {
108 // CHECK-NEXT: "offset": {{[0-9]+}},
109 // CHECK-NEXT: "file": "{{.*}}",
110 // CHECK-NEXT: "line": 6,
111 // CHECK-NEXT: "col": 8,
112 // CHECK-NEXT: "tokLen": 5
114 // CHECK-NEXT: "range": {
115 // CHECK-NEXT: "begin": {
116 // CHECK-NEXT: "offset": {{[0-9]+}},
117 // CHECK-NEXT: "col": 3,
118 // CHECK-NEXT: "tokLen": 4
120 // CHECK-NEXT: "end": {
121 // CHECK-NEXT: "offset": {{[0-9]+}},
122 // CHECK-NEXT: "col": 16,
123 // CHECK-NEXT: "tokLen": 8
126 // CHECK-NEXT: "name": "Test3",
127 // CHECK-NEXT: "mangledName": "_ZNV1S5Test3Ev",
128 // CHECK-NEXT: "type": {
129 // CHECK-NEXT: "qualType": "void () volatile"
134 // CHECK-NOT: {{^}}Dumping
135 // CHECK: "kind": "CXXMethodDecl",
136 // CHECK-NEXT: "loc": {
137 // CHECK-NEXT: "offset": {{[0-9]+}},
138 // CHECK-NEXT: "file": "{{.*}}",
139 // CHECK-NEXT: "line": 7,
140 // CHECK-NEXT: "col": 8,
141 // CHECK-NEXT: "tokLen": 5
143 // CHECK-NEXT: "range": {
144 // CHECK-NEXT: "begin": {
145 // CHECK-NEXT: "offset": {{[0-9]+}},
146 // CHECK-NEXT: "col": 3,
147 // CHECK-NEXT: "tokLen": 4
149 // CHECK-NEXT: "end": {
150 // CHECK-NEXT: "offset": {{[0-9]+}},
151 // CHECK-NEXT: "col": 16,
152 // CHECK-NEXT: "tokLen": 1
155 // CHECK-NEXT: "name": "Test4",
156 // CHECK-NEXT: "mangledName": "_ZNR1S5Test4Ev",
157 // CHECK-NEXT: "type": {
158 // CHECK-NEXT: "qualType": "void () &"
163 // CHECK-NOT: {{^}}Dumping
164 // CHECK: "kind": "CXXMethodDecl",
165 // CHECK-NEXT: "loc": {
166 // CHECK-NEXT: "offset": {{[0-9]+}},
167 // CHECK-NEXT: "file": "{{.*}}",
168 // CHECK-NEXT: "line": 8,
169 // CHECK-NEXT: "col": 8,
170 // CHECK-NEXT: "tokLen": 5
172 // CHECK-NEXT: "range": {
173 // CHECK-NEXT: "begin": {
174 // CHECK-NEXT: "offset": {{[0-9]+}},
175 // CHECK-NEXT: "col": 3,
176 // CHECK-NEXT: "tokLen": 4
178 // CHECK-NEXT: "end": {
179 // CHECK-NEXT: "offset": {{[0-9]+}},
180 // CHECK-NEXT: "col": 16,
181 // CHECK-NEXT: "tokLen": 2
184 // CHECK-NEXT: "name": "Test5",
185 // CHECK-NEXT: "mangledName": "_ZNO1S5Test5Ev",
186 // CHECK-NEXT: "type": {
187 // CHECK-NEXT: "qualType": "void () &&"
192 // CHECK-NOT: {{^}}Dumping
193 // CHECK: "kind": "CXXMethodDecl",
194 // CHECK-NEXT: "loc": {
195 // CHECK-NEXT: "offset": {{[0-9]+}},
196 // CHECK-NEXT: "file": "{{.*}}",
197 // CHECK-NEXT: "line": 9,
198 // CHECK-NEXT: "col": 16,
199 // CHECK-NEXT: "tokLen": 5
201 // CHECK-NEXT: "range": {
202 // CHECK-NEXT: "begin": {
203 // CHECK-NEXT: "offset": {{[0-9]+}},
204 // CHECK-NEXT: "col": 3,
205 // CHECK-NEXT: "tokLen": 7
207 // CHECK-NEXT: "end": {
208 // CHECK-NEXT: "offset": {{[0-9]+}},
209 // CHECK-NEXT: "col": 37,
210 // CHECK-NEXT: "tokLen": 1
213 // CHECK-NEXT: "name": "Test6",
214 // CHECK-NEXT: "mangledName": "_ZN1S5Test6Efi",
215 // CHECK-NEXT: "type": {
216 // CHECK-NEXT: "qualType": "void (float, int)"
218 // CHECK-NEXT: "virtual": true,
219 // CHECK-NEXT: "inner": [
221 // CHECK-NEXT: "id": "0x{{.*}}",
222 // CHECK-NEXT: "kind": "ParmVarDecl",
223 // CHECK-NEXT: "loc": {
224 // CHECK-NEXT: "offset": {{[0-9]+}},
225 // CHECK-NEXT: "col": 27,
226 // CHECK-NEXT: "tokLen": 1
228 // CHECK-NEXT: "range": {
229 // CHECK-NEXT: "begin": {
230 // CHECK-NEXT: "offset": {{[0-9]+}},
231 // CHECK-NEXT: "col": 22,
232 // CHECK-NEXT: "tokLen": 5
234 // CHECK-NEXT: "end": {
235 // CHECK-NEXT: "offset": {{[0-9]+}},
236 // CHECK-NEXT: "col": 22,
237 // CHECK-NEXT: "tokLen": 5
240 // CHECK-NEXT: "type": {
241 // CHECK-NEXT: "qualType": "float"
245 // CHECK-NEXT: "id": "0x{{.*}}",
246 // CHECK-NEXT: "kind": "ParmVarDecl",
247 // CHECK-NEXT: "loc": {
248 // CHECK-NEXT: "offset": {{[0-9]+}},
249 // CHECK-NEXT: "col": 33,
250 // CHECK-NEXT: "tokLen": 1
252 // CHECK-NEXT: "range": {
253 // CHECK-NEXT: "begin": {
254 // CHECK-NEXT: "offset": {{[0-9]+}},
255 // CHECK-NEXT: "col": 29,
256 // CHECK-NEXT: "tokLen": 3
258 // CHECK-NEXT: "end": {
259 // CHECK-NEXT: "offset": {{[0-9]+}},
260 // CHECK-NEXT: "col": 35,
261 // CHECK-NEXT: "tokLen": 2
264 // CHECK-NEXT: "type": {
265 // CHECK-NEXT: "qualType": "int"
267 // CHECK-NEXT: "init": "c",
268 // CHECK-NEXT: "inner": [
270 // CHECK-NEXT: "id": "0x{{.*}}",
271 // CHECK-NEXT: "kind": "IntegerLiteral",
272 // CHECK-NEXT: "range": {
273 // CHECK-NEXT: "begin": {
274 // CHECK-NEXT: "offset": {{[0-9]+}},
275 // CHECK-NEXT: "col": 35,
276 // CHECK-NEXT: "tokLen": 2
278 // CHECK-NEXT: "end": {
279 // CHECK-NEXT: "offset": {{[0-9]+}},
280 // CHECK-NEXT: "col": 35,
281 // CHECK-NEXT: "tokLen": 2
284 // CHECK-NEXT: "type": {
285 // CHECK-NEXT: "qualType": "int"
287 // CHECK-NEXT: "valueCategory": "prvalue",
288 // CHECK-NEXT: "value": "12"
296 // CHECK-NOT: {{^}}Dumping
297 // CHECK: "kind": "CXXMethodDecl",
298 // CHECK-NEXT: "loc": {
299 // CHECK-NEXT: "offset": {{[0-9]+}},
300 // CHECK-NEXT: "file": "{{.*}}",
301 // CHECK-NEXT: "line": 10,
302 // CHECK-NEXT: "col": 16,
303 // CHECK-NEXT: "tokLen": 5
305 // CHECK-NEXT: "range": {
306 // CHECK-NEXT: "begin": {
307 // CHECK-NEXT: "offset": {{[0-9]+}},
308 // CHECK-NEXT: "col": 3,
309 // CHECK-NEXT: "tokLen": 7
311 // CHECK-NEXT: "end": {
312 // CHECK-NEXT: "offset": {{[0-9]+}},
313 // CHECK-NEXT: "col": 26,
314 // CHECK-NEXT: "tokLen": 1
317 // CHECK-NEXT: "name": "Test7",
318 // CHECK-NEXT: "mangledName": "_ZN1S5Test7Ev",
319 // CHECK-NEXT: "type": {
320 // CHECK-NEXT: "qualType": "void ()"
322 // CHECK-NEXT: "virtual": true,
323 // CHECK-NEXT: "pure": true
327 // CHECK-NOT: {{^}}Dumping
328 // CHECK: "kind": "CXXMethodDecl",
329 // CHECK-NEXT: "loc": {
330 // CHECK-NEXT: "offset": {{[0-9]+}},
331 // CHECK-NEXT: "file": "{{.*}}",
332 // CHECK-NEXT: "line": 14,
333 // CHECK-NEXT: "col": 8,
334 // CHECK-NEXT: "tokLen": 5
336 // CHECK-NEXT: "range": {
337 // CHECK-NEXT: "begin": {
338 // CHECK-NEXT: "offset": {{[0-9]+}},
339 // CHECK-NEXT: "col": 3,
340 // CHECK-NEXT: "tokLen": 4
342 // CHECK-NEXT: "end": {
343 // CHECK-NEXT: "offset": {{[0-9]+}},
344 // CHECK-NEXT: "col": 32,
345 // CHECK-NEXT: "tokLen": 8
348 // CHECK-NEXT: "name": "Test6",
349 // CHECK-NEXT: "mangledName": "_ZN1T5Test6Efi",
350 // CHECK-NEXT: "type": {
351 // CHECK-NEXT: "qualType": "void (float, int)"
353 // CHECK-NEXT: "inner": [
355 // CHECK-NEXT: "id": "0x{{.*}}",
356 // CHECK-NEXT: "kind": "ParmVarDecl",
357 // CHECK-NEXT: "loc": {
358 // CHECK-NEXT: "offset": {{[0-9]+}},
359 // CHECK-NEXT: "col": 19,
360 // CHECK-NEXT: "tokLen": 1
362 // CHECK-NEXT: "range": {
363 // CHECK-NEXT: "begin": {
364 // CHECK-NEXT: "offset": {{[0-9]+}},
365 // CHECK-NEXT: "col": 14,
366 // CHECK-NEXT: "tokLen": 5
368 // CHECK-NEXT: "end": {
369 // CHECK-NEXT: "offset": {{[0-9]+}},
370 // CHECK-NEXT: "col": 14,
371 // CHECK-NEXT: "tokLen": 5
374 // CHECK-NEXT: "type": {
375 // CHECK-NEXT: "qualType": "float"
379 // CHECK-NEXT: "id": "0x{{.*}}",
380 // CHECK-NEXT: "kind": "ParmVarDecl",
381 // CHECK-NEXT: "loc": {
382 // CHECK-NEXT: "offset": {{[0-9]+}},
383 // CHECK-NEXT: "col": 25,
384 // CHECK-NEXT: "tokLen": 1
386 // CHECK-NEXT: "range": {
387 // CHECK-NEXT: "begin": {
388 // CHECK-NEXT: "offset": {{[0-9]+}},
389 // CHECK-NEXT: "col": 21,
390 // CHECK-NEXT: "tokLen": 3
392 // CHECK-NEXT: "end": {
393 // CHECK-NEXT: "offset": {{[0-9]+}},
394 // CHECK-NEXT: "col": 27,
395 // CHECK-NEXT: "tokLen": 3
398 // CHECK-NEXT: "type": {
399 // CHECK-NEXT: "qualType": "int"
401 // CHECK-NEXT: "init": "c",
402 // CHECK-NEXT: "inner": [
404 // CHECK-NEXT: "id": "0x{{.*}}",
405 // CHECK-NEXT: "kind": "IntegerLiteral",
406 // CHECK-NEXT: "range": {
407 // CHECK-NEXT: "begin": {
408 // CHECK-NEXT: "offset": {{[0-9]+}},
409 // CHECK-NEXT: "col": 27,
410 // CHECK-NEXT: "tokLen": 3
412 // CHECK-NEXT: "end": {
413 // CHECK-NEXT: "offset": {{[0-9]+}},
414 // CHECK-NEXT: "col": 27,
415 // CHECK-NEXT: "tokLen": 3
418 // CHECK-NEXT: "type": {
419 // CHECK-NEXT: "qualType": "int"
421 // CHECK-NEXT: "valueCategory": "prvalue",
422 // CHECK-NEXT: "value": "100"
427 // CHECK-NEXT: "id": "0x{{.*}}",
428 // CHECK-NEXT: "kind": "OverrideAttr",
429 // CHECK-NEXT: "range": {
430 // CHECK-NEXT: "begin": {
431 // CHECK-NEXT: "offset": {{[0-9]+}},
432 // CHECK-NEXT: "col": 32,
433 // CHECK-NEXT: "tokLen": 8
435 // CHECK-NEXT: "end": {
436 // CHECK-NEXT: "offset": {{[0-9]+}},
437 // CHECK-NEXT: "col": 32,
438 // CHECK-NEXT: "tokLen": 8
446 // CHECK-NOT: {{^}}Dumping
447 // CHECK: "kind": "CXXMethodDecl",
448 // CHECK-NEXT: "loc": {
449 // CHECK-NEXT: "offset": {{[0-9]+}},
450 // CHECK-NEXT: "file": "{{.*}}",
451 // CHECK-NEXT: "line": 18,
452 // CHECK-NEXT: "col": 8,
453 // CHECK-NEXT: "tokLen": 5
455 // CHECK-NEXT: "range": {
456 // CHECK-NEXT: "begin": {
457 // CHECK-NEXT: "offset": {{[0-9]+}},
458 // CHECK-NEXT: "col": 3,
459 // CHECK-NEXT: "tokLen": 4
461 // CHECK-NEXT: "end": {
462 // CHECK-NEXT: "offset": {{[0-9]+}},
463 // CHECK-NEXT: "col": 14,
464 // CHECK-NEXT: "tokLen": 1
467 // CHECK-NEXT: "name": "Test1",
468 // CHECK-NEXT: "mangledName": "_ZN1U5Test1Ev",
469 // CHECK-NEXT: "type": {
470 // CHECK-NEXT: "qualType": "void ()"
475 // CHECK-NOT: {{^}}Dumping
476 // CHECK: "kind": "CXXMethodDecl",
477 // CHECK-NEXT: "loc": {
478 // CHECK-NEXT: "offset": {{[0-9]+}},
479 // CHECK-NEXT: "file": "{{.*}}",
480 // CHECK-NEXT: "line": 20,
481 // CHECK-NEXT: "col": 9,
482 // CHECK-NEXT: "tokLen": 5
484 // CHECK-NEXT: "range": {
485 // CHECK-NEXT: "begin": {
486 // CHECK-NEXT: "offset": {{[0-9]+}},
487 // CHECK-NEXT: "col": 1,
488 // CHECK-NEXT: "tokLen": 4
490 // CHECK-NEXT: "end": {
491 // CHECK-NEXT: "offset": {{[0-9]+}},
492 // CHECK-NEXT: "col": 18,
493 // CHECK-NEXT: "tokLen": 1
496 // CHECK-NEXT: "parentDeclContextId": "0x{{.*}}",
497 // CHECK-NEXT: "previousDecl": "0x{{.*}}",
498 // CHECK-NEXT: "name": "Test1",
499 // CHECK-NEXT: "mangledName": "_ZN1U5Test1Ev",
500 // CHECK-NEXT: "type": {
501 // CHECK-NEXT: "qualType": "void ()"
503 // CHECK-NEXT: "inner": [
505 // CHECK-NEXT: "id": "0x{{.*}}",
506 // CHECK-NEXT: "kind": "CompoundStmt",
507 // CHECK-NEXT: "range": {
508 // CHECK-NEXT: "begin": {
509 // CHECK-NEXT: "offset": {{[0-9]+}},
510 // CHECK-NEXT: "col": 17,
511 // CHECK-NEXT: "tokLen": 1
513 // CHECK-NEXT: "end": {
514 // CHECK-NEXT: "offset": {{[0-9]+}},
515 // CHECK-NEXT: "col": 18,
516 // CHECK-NEXT: "tokLen": 1
524 // CHECK-NOT: {{^}}Dumping
525 // CHECK: "kind": "FunctionDecl",
526 // CHECK-NEXT: "loc": {
527 // CHECK-NEXT: "offset": {{[0-9]+}},
528 // CHECK-NEXT: "file": "{{.*}}",
529 // CHECK-NEXT: "line": 22,
530 // CHECK-NEXT: "col": 6,
531 // CHECK-NEXT: "tokLen": 5
533 // CHECK-NEXT: "range": {
534 // CHECK-NEXT: "begin": {
535 // CHECK-NEXT: "offset": {{[0-9]+}},
536 // CHECK-NEXT: "col": 1,
537 // CHECK-NEXT: "tokLen": 4
539 // CHECK-NEXT: "end": {
540 // CHECK-NEXT: "offset": {{[0-9]+}},
541 // CHECK-NEXT: "col": 12,
542 // CHECK-NEXT: "tokLen": 1
545 // CHECK-NEXT: "isUsed": true,
546 // CHECK-NEXT: "name": "Test1",
547 // CHECK-NEXT: "mangledName": "_Z5Test1v",
548 // CHECK-NEXT: "type": {
549 // CHECK-NEXT: "qualType": "void ()"
554 // CHECK-NOT: {{^}}Dumping
555 // CHECK: "kind": "FunctionDecl",
556 // CHECK-NEXT: "loc": {
557 // CHECK-NEXT: "offset": {{[0-9]+}},
558 // CHECK-NEXT: "file": "{{.*}}",
559 // CHECK-NEXT: "line": 23,
560 // CHECK-NEXT: "col": 6,
561 // CHECK-NEXT: "tokLen": 5
563 // CHECK-NEXT: "range": {
564 // CHECK-NEXT: "begin": {
565 // CHECK-NEXT: "offset": {{[0-9]+}},
566 // CHECK-NEXT: "col": 1,
567 // CHECK-NEXT: "tokLen": 4
569 // CHECK-NEXT: "end": {
570 // CHECK-NEXT: "offset": {{[0-9]+}},
571 // CHECK-NEXT: "col": 16,
572 // CHECK-NEXT: "tokLen": 1
575 // CHECK-NEXT: "name": "Test2",
576 // CHECK-NEXT: "mangledName": "_Z5Test2v",
577 // CHECK-NEXT: "type": {
578 // CHECK-NEXT: "qualType": "void ()"
583 // CHECK-NOT: {{^}}Dumping
584 // CHECK: "kind": "FunctionDecl",
585 // CHECK-NEXT: "loc": {
586 // CHECK-NEXT: "offset": {{[0-9]+}},
587 // CHECK-NEXT: "file": "{{.*}}",
588 // CHECK-NEXT: "line": 24,
589 // CHECK-NEXT: "col": 6,
590 // CHECK-NEXT: "tokLen": 5
592 // CHECK-NEXT: "range": {
593 // CHECK-NEXT: "begin": {
594 // CHECK-NEXT: "offset": {{[0-9]+}},
595 // CHECK-NEXT: "col": 1,
596 // CHECK-NEXT: "tokLen": 4
598 // CHECK-NEXT: "end": {
599 // CHECK-NEXT: "offset": {{[0-9]+}},
600 // CHECK-NEXT: "col": 24,
601 // CHECK-NEXT: "tokLen": 1
604 // CHECK-NEXT: "name": "Test3",
605 // CHECK-NEXT: "mangledName": "_Z5Test3ii",
606 // CHECK-NEXT: "type": {
607 // CHECK-NEXT: "qualType": "void (int, int)"
609 // CHECK-NEXT: "inner": [
611 // CHECK-NEXT: "id": "0x{{.*}}",
612 // CHECK-NEXT: "kind": "ParmVarDecl",
613 // CHECK-NEXT: "loc": {
614 // CHECK-NEXT: "offset": {{[0-9]+}},
615 // CHECK-NEXT: "col": 16,
616 // CHECK-NEXT: "tokLen": 1
618 // CHECK-NEXT: "range": {
619 // CHECK-NEXT: "begin": {
620 // CHECK-NEXT: "offset": {{[0-9]+}},
621 // CHECK-NEXT: "col": 12,
622 // CHECK-NEXT: "tokLen": 3
624 // CHECK-NEXT: "end": {
625 // CHECK-NEXT: "offset": {{[0-9]+}},
626 // CHECK-NEXT: "col": 16,
627 // CHECK-NEXT: "tokLen": 1
630 // CHECK-NEXT: "name": "a",
631 // CHECK-NEXT: "type": {
632 // CHECK-NEXT: "qualType": "int"
636 // CHECK-NEXT: "id": "0x{{.*}}",
637 // CHECK-NEXT: "kind": "ParmVarDecl",
638 // CHECK-NEXT: "loc": {
639 // CHECK-NEXT: "offset": {{[0-9]+}},
640 // CHECK-NEXT: "col": 23,
641 // CHECK-NEXT: "tokLen": 1
643 // CHECK-NEXT: "range": {
644 // CHECK-NEXT: "begin": {
645 // CHECK-NEXT: "offset": {{[0-9]+}},
646 // CHECK-NEXT: "col": 19,
647 // CHECK-NEXT: "tokLen": 3
649 // CHECK-NEXT: "end": {
650 // CHECK-NEXT: "offset": {{[0-9]+}},
651 // CHECK-NEXT: "col": 23,
652 // CHECK-NEXT: "tokLen": 1
655 // CHECK-NEXT: "name": "b",
656 // CHECK-NEXT: "type": {
657 // CHECK-NEXT: "qualType": "int"
664 // CHECK-NOT: {{^}}Dumping
665 // CHECK: "kind": "FunctionDecl",
666 // CHECK-NEXT: "loc": {
667 // CHECK-NEXT: "offset": {{[0-9]+}},
668 // CHECK-NEXT: "file": "{{.*}}",
669 // CHECK-NEXT: "line": 25,
670 // CHECK-NEXT: "col": 6,
671 // CHECK-NEXT: "tokLen": 5
673 // CHECK-NEXT: "range": {
674 // CHECK-NEXT: "begin": {
675 // CHECK-NEXT: "offset": {{[0-9]+}},
676 // CHECK-NEXT: "col": 1,
677 // CHECK-NEXT: "tokLen": 4
679 // CHECK-NEXT: "end": {
680 // CHECK-NEXT: "offset": {{[0-9]+}},
681 // CHECK-NEXT: "col": 29,
682 // CHECK-NEXT: "tokLen": 1
685 // CHECK-NEXT: "name": "Test4",
686 // CHECK-NEXT: "mangledName": "_Z5Test4ii",
687 // CHECK-NEXT: "type": {
688 // CHECK-NEXT: "qualType": "void (int, int)"
690 // CHECK-NEXT: "inner": [
692 // CHECK-NEXT: "id": "0x{{.*}}",
693 // CHECK-NEXT: "kind": "ParmVarDecl",
694 // CHECK-NEXT: "loc": {
695 // CHECK-NEXT: "offset": {{[0-9]+}},
696 // CHECK-NEXT: "col": 16,
697 // CHECK-NEXT: "tokLen": 1
699 // CHECK-NEXT: "range": {
700 // CHECK-NEXT: "begin": {
701 // CHECK-NEXT: "offset": {{[0-9]+}},
702 // CHECK-NEXT: "col": 12,
703 // CHECK-NEXT: "tokLen": 3
705 // CHECK-NEXT: "end": {
706 // CHECK-NEXT: "offset": {{[0-9]+}},
707 // CHECK-NEXT: "col": 16,
708 // CHECK-NEXT: "tokLen": 1
711 // CHECK-NEXT: "name": "a",
712 // CHECK-NEXT: "type": {
713 // CHECK-NEXT: "qualType": "int"
717 // CHECK-NEXT: "id": "0x{{.*}}",
718 // CHECK-NEXT: "kind": "ParmVarDecl",
719 // CHECK-NEXT: "loc": {
720 // CHECK-NEXT: "offset": {{[0-9]+}},
721 // CHECK-NEXT: "col": 23,
722 // CHECK-NEXT: "tokLen": 1
724 // CHECK-NEXT: "range": {
725 // CHECK-NEXT: "begin": {
726 // CHECK-NEXT: "offset": {{[0-9]+}},
727 // CHECK-NEXT: "col": 19,
728 // CHECK-NEXT: "tokLen": 3
730 // CHECK-NEXT: "end": {
731 // CHECK-NEXT: "offset": {{[0-9]+}},
732 // CHECK-NEXT: "col": 27,
733 // CHECK-NEXT: "tokLen": 2
736 // CHECK-NEXT: "name": "b",
737 // CHECK-NEXT: "type": {
738 // CHECK-NEXT: "qualType": "int"
740 // CHECK-NEXT: "init": "c",
741 // CHECK-NEXT: "inner": [
743 // CHECK-NEXT: "id": "0x{{.*}}",
744 // CHECK-NEXT: "kind": "IntegerLiteral",
745 // CHECK-NEXT: "range": {
746 // CHECK-NEXT: "begin": {
747 // CHECK-NEXT: "offset": {{[0-9]+}},
748 // CHECK-NEXT: "col": 27,
749 // CHECK-NEXT: "tokLen": 2
751 // CHECK-NEXT: "end": {
752 // CHECK-NEXT: "offset": {{[0-9]+}},
753 // CHECK-NEXT: "col": 27,
754 // CHECK-NEXT: "tokLen": 2
757 // CHECK-NEXT: "type": {
758 // CHECK-NEXT: "qualType": "int"
760 // CHECK-NEXT: "valueCategory": "prvalue",
761 // CHECK-NEXT: "value": "12"
769 // CHECK-NOT: {{^}}Dumping
770 // CHECK: "kind": "FunctionDecl",
771 // CHECK-NEXT: "loc": {
772 // CHECK-NEXT: "offset": {{[0-9]+}},
773 // CHECK-NEXT: "file": "{{.*}}",
774 // CHECK-NEXT: "line": 26,
775 // CHECK-NEXT: "col": 16,
776 // CHECK-NEXT: "tokLen": 5
778 // CHECK-NEXT: "range": {
779 // CHECK-NEXT: "begin": {
780 // CHECK-NEXT: "offset": {{[0-9]+}},
781 // CHECK-NEXT: "col": 1,
782 // CHECK-NEXT: "tokLen": 9
784 // CHECK-NEXT: "end": {
785 // CHECK-NEXT: "offset": {{[0-9]+}},
786 // CHECK-NEXT: "col": 26,
787 // CHECK-NEXT: "tokLen": 1
790 // CHECK-NEXT: "name": "Test5",
791 // CHECK-NEXT: "mangledName": "_Z5Test5v",
792 // CHECK-NEXT: "type": {
793 // CHECK-NEXT: "qualType": "void ()"
795 // CHECK-NEXT: "constexpr": true
799 // CHECK-NOT: {{^}}Dumping
800 // CHECK: "kind": "FunctionDecl",
801 // CHECK-NEXT: "loc": {
802 // CHECK-NEXT: "offset": {{[0-9]+}},
803 // CHECK-NEXT: "file": "{{.*}}",
804 // CHECK-NEXT: "line": 27,
805 // CHECK-NEXT: "col": 13,
806 // CHECK-NEXT: "tokLen": 5
808 // CHECK-NEXT: "range": {
809 // CHECK-NEXT: "begin": {
810 // CHECK-NEXT: "offset": {{[0-9]+}},
811 // CHECK-NEXT: "col": 1,
812 // CHECK-NEXT: "tokLen": 6
814 // CHECK-NEXT: "end": {
815 // CHECK-NEXT: "offset": {{[0-9]+}},
816 // CHECK-NEXT: "col": 23,
817 // CHECK-NEXT: "tokLen": 1
820 // CHECK-NEXT: "name": "Test6",
821 // CHECK-NEXT: "mangledName": "_ZL5Test6v",
822 // CHECK-NEXT: "type": {
823 // CHECK-NEXT: "qualType": "void ()"
825 // CHECK-NEXT: "storageClass": "static"
829 // CHECK-NOT: {{^}}Dumping
830 // CHECK: "kind": "FunctionDecl",
831 // CHECK-NEXT: "loc": {
832 // CHECK-NEXT: "offset": {{[0-9]+}},
833 // CHECK-NEXT: "file": "{{.*}}",
834 // CHECK-NEXT: "line": 28,
835 // CHECK-NEXT: "col": 13,
836 // CHECK-NEXT: "tokLen": 5
838 // CHECK-NEXT: "range": {
839 // CHECK-NEXT: "begin": {
840 // CHECK-NEXT: "offset": {{[0-9]+}},
841 // CHECK-NEXT: "col": 1,
842 // CHECK-NEXT: "tokLen": 6
844 // CHECK-NEXT: "end": {
845 // CHECK-NEXT: "offset": {{[0-9]+}},
846 // CHECK-NEXT: "col": 23,
847 // CHECK-NEXT: "tokLen": 1
850 // CHECK-NEXT: "name": "Test7",
851 // CHECK-NEXT: "mangledName": "_Z5Test7v",
852 // CHECK-NEXT: "type": {
853 // CHECK-NEXT: "qualType": "void ()"
855 // CHECK-NEXT: "storageClass": "extern"
859 // CHECK-NOT: {{^}}Dumping
860 // CHECK: "kind": "FunctionDecl",
861 // CHECK-NEXT: "loc": {
862 // CHECK-NEXT: "offset": {{[0-9]+}},
863 // CHECK-NEXT: "file": "{{.*}}",
864 // CHECK-NEXT: "line": 29,
865 // CHECK-NEXT: "col": 13,
866 // CHECK-NEXT: "tokLen": 5
868 // CHECK-NEXT: "range": {
869 // CHECK-NEXT: "begin": {
870 // CHECK-NEXT: "offset": {{[0-9]+}},
871 // CHECK-NEXT: "col": 1,
872 // CHECK-NEXT: "tokLen": 6
874 // CHECK-NEXT: "end": {
875 // CHECK-NEXT: "offset": {{[0-9]+}},
876 // CHECK-NEXT: "col": 23,
877 // CHECK-NEXT: "tokLen": 1
880 // CHECK-NEXT: "name": "Test8",
881 // CHECK-NEXT: "mangledName": "_Z5Test8v",
882 // CHECK-NEXT: "type": {
883 // CHECK-NEXT: "qualType": "void ()"
885 // CHECK-NEXT: "inline": true
889 // CHECK-NOT: {{^}}Dumping
890 // CHECK: "kind": "FunctionDecl",
891 // CHECK-NEXT: "loc": {
892 // CHECK-NEXT: "offset": {{[0-9]+}},
893 // CHECK-NEXT: "file": "{{.*}}",
894 // CHECK-NEXT: "line": 30,
895 // CHECK-NEXT: "col": 6,
896 // CHECK-NEXT: "tokLen": 5
898 // CHECK-NEXT: "range": {
899 // CHECK-NEXT: "begin": {
900 // CHECK-NEXT: "offset": {{[0-9]+}},
901 // CHECK-NEXT: "col": 1,
902 // CHECK-NEXT: "tokLen": 4
904 // CHECK-NEXT: "end": {
905 // CHECK-NEXT: "offset": {{[0-9]+}},
906 // CHECK-NEXT: "col": 18,
907 // CHECK-NEXT: "tokLen": 8
910 // CHECK-NEXT: "name": "Test9",
911 // CHECK-NEXT: "mangledName": "_Z5Test9v",
912 // CHECK-NEXT: "type": {
913 // CHECK-NEXT: "qualType": "void () noexcept"
918 // CHECK-NOT: {{^}}Dumping
919 // CHECK: "kind": "FunctionDecl",
920 // CHECK-NEXT: "loc": {
921 // CHECK-NEXT: "offset": {{[0-9]+}},
922 // CHECK-NEXT: "file": "{{.*}}",
923 // CHECK-NEXT: "line": 31,
924 // CHECK-NEXT: "col": 6,
925 // CHECK-NEXT: "tokLen": 6
927 // CHECK-NEXT: "range": {
928 // CHECK-NEXT: "begin": {
929 // CHECK-NEXT: "offset": {{[0-9]+}},
930 // CHECK-NEXT: "col": 1,
931 // CHECK-NEXT: "tokLen": 4
933 // CHECK-NEXT: "end": {
934 // CHECK-NEXT: "offset": {{[0-9]+}},
935 // CHECK-NEXT: "col": 33,
936 // CHECK-NEXT: "tokLen": 1
939 // CHECK-NEXT: "name": "Test10",
940 // CHECK-NEXT: "mangledName": "_Z6Test10v",
941 // CHECK-NEXT: "type": {
942 // CHECK-NEXT: "qualType": "void () noexcept(false)"
947 // CHECK-NOT: {{^}}Dumping
948 // CHECK: "kind": "FunctionDecl",
949 // CHECK-NEXT: "loc": {
950 // CHECK-NEXT: "offset": {{[0-9]+}},
951 // CHECK-NEXT: "file": "{{.*}}",
952 // CHECK-NEXT: "line": 32,
953 // CHECK-NEXT: "col": 6,
954 // CHECK-NEXT: "tokLen": 6
956 // CHECK-NEXT: "range": {
957 // CHECK-NEXT: "begin": {
958 // CHECK-NEXT: "offset": {{[0-9]+}},
959 // CHECK-NEXT: "col": 1,
960 // CHECK-NEXT: "tokLen": 4
962 // CHECK-NEXT: "end": {
963 // CHECK-NEXT: "offset": {{[0-9]+}},
964 // CHECK-NEXT: "col": 29,
965 // CHECK-NEXT: "tokLen": 1
968 // CHECK-NEXT: "name": "Test11",
969 // CHECK-NEXT: "mangledName": "_Z6Test11v",
970 // CHECK-NEXT: "type": {
971 // CHECK-NEXT: "qualType": "void () noexcept(1)"
976 // CHECK-NOT: {{^}}Dumping
977 // CHECK: "kind": "FunctionTemplateDecl",
978 // CHECK-NEXT: "loc": {
979 // CHECK-NEXT: "offset": {{[0-9]+}},
980 // CHECK-NEXT: "file": "{{.*}}",
981 // CHECK-NEXT: "line": 35,
982 // CHECK-NEXT: "col": 3,
983 // CHECK-NEXT: "tokLen": 6
985 // CHECK-NEXT: "range": {
986 // CHECK-NEXT: "begin": {
987 // CHECK-NEXT: "offset": {{[0-9]+}},
988 // CHECK-NEXT: "line": 34,
989 // CHECK-NEXT: "col": 1,
990 // CHECK-NEXT: "tokLen": 8
992 // CHECK-NEXT: "end": {
993 // CHECK-NEXT: "offset": {{[0-9]+}},
994 // CHECK-NEXT: "line": 35,
995 // CHECK-NEXT: "col": 12,
996 // CHECK-NEXT: "tokLen": 1
999 // CHECK-NEXT: "name": "Test12",
1000 // CHECK-NEXT: "inner": [
1002 // CHECK-NEXT: "id": "0x{{.*}}",
1003 // CHECK-NEXT: "kind": "TemplateTypeParmDecl",
1004 // CHECK-NEXT: "loc": {
1005 // CHECK-NEXT: "offset": {{[0-9]+}},
1006 // CHECK-NEXT: "line": 34,
1007 // CHECK-NEXT: "col": 20,
1008 // CHECK-NEXT: "tokLen": 1
1010 // CHECK-NEXT: "range": {
1011 // CHECK-NEXT: "begin": {
1012 // CHECK-NEXT: "offset": {{[0-9]+}},
1013 // CHECK-NEXT: "col": 11,
1014 // CHECK-NEXT: "tokLen": 8
1016 // CHECK-NEXT: "end": {
1017 // CHECK-NEXT: "offset": {{[0-9]+}},
1018 // CHECK-NEXT: "col": 20,
1019 // CHECK-NEXT: "tokLen": 1
1022 // CHECK-NEXT: "isReferenced": true,
1023 // CHECK-NEXT: "name": "T",
1024 // CHECK-NEXT: "tagUsed": "typename",
1025 // CHECK-NEXT: "depth": 0,
1026 // CHECK-NEXT: "index": 0
1029 // CHECK-NEXT: "id": "0x{{.*}}",
1030 // CHECK-NEXT: "kind": "FunctionDecl",
1031 // CHECK-NEXT: "loc": {
1032 // CHECK-NEXT: "offset": {{[0-9]+}},
1033 // CHECK-NEXT: "line": 35,
1034 // CHECK-NEXT: "col": 3,
1035 // CHECK-NEXT: "tokLen": 6
1037 // CHECK-NEXT: "range": {
1038 // CHECK-NEXT: "begin": {
1039 // CHECK-NEXT: "offset": {{[0-9]+}},
1040 // CHECK-NEXT: "col": 1,
1041 // CHECK-NEXT: "tokLen": 1
1043 // CHECK-NEXT: "end": {
1044 // CHECK-NEXT: "offset": {{[0-9]+}},
1045 // CHECK-NEXT: "col": 12,
1046 // CHECK-NEXT: "tokLen": 1
1049 // CHECK-NEXT: "name": "Test12",
1050 // CHECK-NEXT: "type": {
1051 // CHECK-NEXT: "qualType": "T (T &)"
1053 // CHECK-NEXT: "inner": [
1055 // CHECK-NEXT: "id": "0x{{.*}}",
1056 // CHECK-NEXT: "kind": "ParmVarDecl",
1057 // CHECK-NEXT: "loc": {
1058 // CHECK-NEXT: "offset": {{[0-9]+}},
1059 // CHECK-NEXT: "col": 12,
1060 // CHECK-NEXT: "tokLen": 1
1062 // CHECK-NEXT: "range": {
1063 // CHECK-NEXT: "begin": {
1064 // CHECK-NEXT: "offset": {{[0-9]+}},
1065 // CHECK-NEXT: "col": 10,
1066 // CHECK-NEXT: "tokLen": 1
1068 // CHECK-NEXT: "end": {
1069 // CHECK-NEXT: "offset": {{[0-9]+}},
1070 // CHECK-NEXT: "col": 11,
1071 // CHECK-NEXT: "tokLen": 1
1074 // CHECK-NEXT: "type": {
1075 // CHECK-NEXT: "qualType": "T &"
1084 // CHECK-NOT: {{^}}Dumping
1085 // CHECK: "kind": "FunctionDecl",
1086 // CHECK-NEXT: "loc": {
1087 // CHECK-NEXT: "offset": {{[0-9]+}},
1088 // CHECK-NEXT: "file": "{{.*}}",
1089 // CHECK-NEXT: "line": 37,
1090 // CHECK-NEXT: "col": 6,
1091 // CHECK-NEXT: "tokLen": 6
1093 // CHECK-NEXT: "range": {
1094 // CHECK-NEXT: "begin": {
1095 // CHECK-NEXT: "offset": {{[0-9]+}},
1096 // CHECK-NEXT: "col": 1,
1097 // CHECK-NEXT: "tokLen": 4
1099 // CHECK-NEXT: "end": {
1100 // CHECK-NEXT: "offset": {{[0-9]+}},
1101 // CHECK-NEXT: "col": 19,
1102 // CHECK-NEXT: "tokLen": 1
1105 // CHECK-NEXT: "name": "Test13",
1106 // CHECK-NEXT: "mangledName": "_Z6Test13i",
1107 // CHECK-NEXT: "type": {
1108 // CHECK-NEXT: "qualType": "void (int)"
1110 // CHECK-NEXT: "inner": [
1112 // CHECK-NEXT: "id": "0x{{.*}}",
1113 // CHECK-NEXT: "kind": "ParmVarDecl",
1114 // CHECK-NEXT: "loc": {
1115 // CHECK-NEXT: "offset": {{[0-9]+}},
1116 // CHECK-NEXT: "col": 16,
1117 // CHECK-NEXT: "tokLen": 1
1119 // CHECK-NEXT: "range": {
1120 // CHECK-NEXT: "begin": {
1121 // CHECK-NEXT: "offset": {{[0-9]+}},
1122 // CHECK-NEXT: "col": 13,
1123 // CHECK-NEXT: "tokLen": 3
1125 // CHECK-NEXT: "end": {
1126 // CHECK-NEXT: "offset": {{[0-9]+}},
1127 // CHECK-NEXT: "col": 13,
1128 // CHECK-NEXT: "tokLen": 3
1131 // CHECK-NEXT: "type": {
1132 // CHECK-NEXT: "qualType": "int"
1136 // CHECK-NEXT: "id": "0x{{.*}}",
1137 // CHECK-NEXT: "kind": "CompoundStmt",
1138 // CHECK-NEXT: "range": {
1139 // CHECK-NEXT: "begin": {
1140 // CHECK-NEXT: "offset": {{[0-9]+}},
1141 // CHECK-NEXT: "col": 18,
1142 // CHECK-NEXT: "tokLen": 1
1144 // CHECK-NEXT: "end": {
1145 // CHECK-NEXT: "offset": {{[0-9]+}},
1146 // CHECK-NEXT: "col": 19,
1147 // CHECK-NEXT: "tokLen": 1
1155 // CHECK-NOT: {{^}}Dumping
1156 // CHECK: "kind": "FunctionDecl",
1157 // CHECK-NEXT: "loc": {
1158 // CHECK-NEXT: "offset": {{[0-9]+}},
1159 // CHECK-NEXT: "file": "{{.*}}",
1160 // CHECK-NEXT: "line": 38,
1161 // CHECK-NEXT: "col": 6,
1162 // CHECK-NEXT: "tokLen": 6
1164 // CHECK-NEXT: "range": {
1165 // CHECK-NEXT: "begin": {
1166 // CHECK-NEXT: "offset": {{[0-9]+}},
1167 // CHECK-NEXT: "col": 1,
1168 // CHECK-NEXT: "tokLen": 4
1170 // CHECK-NEXT: "end": {
1171 // CHECK-NEXT: "offset": {{[0-9]+}},
1172 // CHECK-NEXT: "col": 24,
1173 // CHECK-NEXT: "tokLen": 1
1176 // CHECK-NEXT: "name": "Test14",
1177 // CHECK-NEXT: "mangledName": "_Z6Test14iz",
1178 // CHECK-NEXT: "type": {
1179 // CHECK-NEXT: "qualType": "void (int, ...)"
1181 // CHECK-NEXT: "variadic": true,
1182 // CHECK-NEXT: "inner": [
1184 // CHECK-NEXT: "id": "0x{{.*}}",
1185 // CHECK-NEXT: "kind": "ParmVarDecl",
1186 // CHECK-NEXT: "loc": {
1187 // CHECK-NEXT: "offset": {{[0-9]+}},
1188 // CHECK-NEXT: "col": 16,
1189 // CHECK-NEXT: "tokLen": 1
1191 // CHECK-NEXT: "range": {
1192 // CHECK-NEXT: "begin": {
1193 // CHECK-NEXT: "offset": {{[0-9]+}},
1194 // CHECK-NEXT: "col": 13,
1195 // CHECK-NEXT: "tokLen": 3
1197 // CHECK-NEXT: "end": {
1198 // CHECK-NEXT: "offset": {{[0-9]+}},
1199 // CHECK-NEXT: "col": 13,
1200 // CHECK-NEXT: "tokLen": 3
1203 // CHECK-NEXT: "type": {
1204 // CHECK-NEXT: "qualType": "int"
1208 // CHECK-NEXT: "id": "0x{{.*}}",
1209 // CHECK-NEXT: "kind": "CompoundStmt",
1210 // CHECK-NEXT: "range": {
1211 // CHECK-NEXT: "begin": {
1212 // CHECK-NEXT: "offset": {{[0-9]+}},
1213 // CHECK-NEXT: "col": 23,
1214 // CHECK-NEXT: "tokLen": 1
1216 // CHECK-NEXT: "end": {
1217 // CHECK-NEXT: "offset": {{[0-9]+}},
1218 // CHECK-NEXT: "col": 24,
1219 // CHECK-NEXT: "tokLen": 1