xref: /llvm-project/clang/test/AST/ast-dump-funcs-json.cpp (revision da007a33c95a37c1331a14bc4f377982598fe68a)
1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json -ast-dump-filter Test %s | FileCheck %s
2 
3 struct S {
4   void Test1();
5   void Test2() const;
6   void Test3() volatile;
7   void Test4() &;
8   void Test5() &&;
9   virtual void Test6(float, int = 12);
10   virtual void Test7() = 0;
11 };
12 
13 struct T : S { // T is not referenced, but S is
14   void Test6(float, int = 100) override;
15 };
16 
17 struct U {
18   void Test1();
19 };
20 void U::Test1() {} // parent
21 
22 void Test1();
23 void Test2(void);
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);
33 
34 template <typename T>
35 T Test12(T&);
36 
37 void Test13(int) {}
38 void Test14(int, ...) {}
39 
40 int main() {
41   Test1(); // Causes this to be marked 'used'
42 }
43 
44 // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py
45 
46 
47 // CHECK-NOT: {{^}}Dumping
48 // CHECK:  "kind": "CXXMethodDecl",
49 // CHECK-NEXT:  "loc": {
50 // CHECK-NEXT:   "offset": 124,
51 // CHECK-NEXT:   "file": "{{.*}}",
52 // CHECK-NEXT:   "line": 4,
53 // CHECK-NEXT:   "col": 8,
54 // CHECK-NEXT:   "tokLen": 5
55 // CHECK-NEXT:  },
56 // CHECK-NEXT:  "range": {
57 // CHECK-NEXT:   "begin": {
58 // CHECK-NEXT:    "offset": 119,
59 // CHECK-NEXT:    "col": 3,
60 // CHECK-NEXT:    "tokLen": 4
61 // CHECK-NEXT:   },
62 // CHECK-NEXT:   "end": {
63 // CHECK-NEXT:    "offset": 130,
64 // CHECK-NEXT:    "col": 14,
65 // CHECK-NEXT:    "tokLen": 1
66 // CHECK-NEXT:   }
67 // CHECK-NEXT:  },
68 // CHECK-NEXT:  "name": "Test1",
69 // CHECK-NEXT:  "mangledName": "_ZN1S5Test1Ev",
70 // CHECK-NEXT:  "type": {
71 // CHECK-NEXT:   "qualType": "void ()"
72 // CHECK-NEXT:  }
73 // CHECK-NEXT: }
74 
75 
76 // CHECK-NOT: {{^}}Dumping
77 // CHECK:  "kind": "CXXMethodDecl",
78 // CHECK-NEXT:  "loc": {
79 // CHECK-NEXT:   "offset": 140,
80 // CHECK-NEXT:   "file": "{{.*}}",
81 // CHECK-NEXT:   "line": 5,
82 // CHECK-NEXT:   "col": 8,
83 // CHECK-NEXT:   "tokLen": 5
84 // CHECK-NEXT:  },
85 // CHECK-NEXT:  "range": {
86 // CHECK-NEXT:   "begin": {
87 // CHECK-NEXT:    "offset": 135,
88 // CHECK-NEXT:    "col": 3,
89 // CHECK-NEXT:    "tokLen": 4
90 // CHECK-NEXT:   },
91 // CHECK-NEXT:   "end": {
92 // CHECK-NEXT:    "offset": 148,
93 // CHECK-NEXT:    "col": 16,
94 // CHECK-NEXT:    "tokLen": 5
95 // CHECK-NEXT:   }
96 // CHECK-NEXT:  },
97 // CHECK-NEXT:  "name": "Test2",
98 // CHECK-NEXT:  "mangledName": "_ZNK1S5Test2Ev",
99 // CHECK-NEXT:  "type": {
100 // CHECK-NEXT:   "qualType": "void () const"
101 // CHECK-NEXT:  }
102 // CHECK-NEXT: }
103 
104 
105 // CHECK-NOT: {{^}}Dumping
106 // CHECK:  "kind": "CXXMethodDecl",
107 // CHECK-NEXT:  "loc": {
108 // CHECK-NEXT:   "offset": 162,
109 // CHECK-NEXT:   "file": "{{.*}}",
110 // CHECK-NEXT:   "line": 6,
111 // CHECK-NEXT:   "col": 8,
112 // CHECK-NEXT:   "tokLen": 5
113 // CHECK-NEXT:  },
114 // CHECK-NEXT:  "range": {
115 // CHECK-NEXT:   "begin": {
116 // CHECK-NEXT:    "offset": 157,
117 // CHECK-NEXT:    "col": 3,
118 // CHECK-NEXT:    "tokLen": 4
119 // CHECK-NEXT:   },
120 // CHECK-NEXT:   "end": {
121 // CHECK-NEXT:    "offset": 170,
122 // CHECK-NEXT:    "col": 16,
123 // CHECK-NEXT:    "tokLen": 8
124 // CHECK-NEXT:   }
125 // CHECK-NEXT:  },
126 // CHECK-NEXT:  "name": "Test3",
127 // CHECK-NEXT:  "mangledName": "_ZNV1S5Test3Ev",
128 // CHECK-NEXT:  "type": {
129 // CHECK-NEXT:   "qualType": "void () volatile"
130 // CHECK-NEXT:  }
131 // CHECK-NEXT: }
132 
133 
134 // CHECK-NOT: {{^}}Dumping
135 // CHECK:  "kind": "CXXMethodDecl",
136 // CHECK-NEXT:  "loc": {
137 // CHECK-NEXT:   "offset": 187,
138 // CHECK-NEXT:   "file": "{{.*}}",
139 // CHECK-NEXT:   "line": 7,
140 // CHECK-NEXT:   "col": 8,
141 // CHECK-NEXT:   "tokLen": 5
142 // CHECK-NEXT:  },
143 // CHECK-NEXT:  "range": {
144 // CHECK-NEXT:   "begin": {
145 // CHECK-NEXT:    "offset": 182,
146 // CHECK-NEXT:    "col": 3,
147 // CHECK-NEXT:    "tokLen": 4
148 // CHECK-NEXT:   },
149 // CHECK-NEXT:   "end": {
150 // CHECK-NEXT:    "offset": 195,
151 // CHECK-NEXT:    "col": 16,
152 // CHECK-NEXT:    "tokLen": 1
153 // CHECK-NEXT:   }
154 // CHECK-NEXT:  },
155 // CHECK-NEXT:  "name": "Test4",
156 // CHECK-NEXT:  "mangledName": "_ZNR1S5Test4Ev",
157 // CHECK-NEXT:  "type": {
158 // CHECK-NEXT:   "qualType": "void () &"
159 // CHECK-NEXT:  }
160 // CHECK-NEXT: }
161 
162 
163 // CHECK-NOT: {{^}}Dumping
164 // CHECK:  "kind": "CXXMethodDecl",
165 // CHECK-NEXT:  "loc": {
166 // CHECK-NEXT:   "offset": 205,
167 // CHECK-NEXT:   "file": "{{.*}}",
168 // CHECK-NEXT:   "line": 8,
169 // CHECK-NEXT:   "col": 8,
170 // CHECK-NEXT:   "tokLen": 5
171 // CHECK-NEXT:  },
172 // CHECK-NEXT:  "range": {
173 // CHECK-NEXT:   "begin": {
174 // CHECK-NEXT:    "offset": 200,
175 // CHECK-NEXT:    "col": 3,
176 // CHECK-NEXT:    "tokLen": 4
177 // CHECK-NEXT:   },
178 // CHECK-NEXT:   "end": {
179 // CHECK-NEXT:    "offset": 213,
180 // CHECK-NEXT:    "col": 16,
181 // CHECK-NEXT:    "tokLen": 2
182 // CHECK-NEXT:   }
183 // CHECK-NEXT:  },
184 // CHECK-NEXT:  "name": "Test5",
185 // CHECK-NEXT:  "mangledName": "_ZNO1S5Test5Ev",
186 // CHECK-NEXT:  "type": {
187 // CHECK-NEXT:   "qualType": "void () &&"
188 // CHECK-NEXT:  }
189 // CHECK-NEXT: }
190 
191 
192 // CHECK-NOT: {{^}}Dumping
193 // CHECK:  "kind": "CXXMethodDecl",
194 // CHECK-NEXT:  "loc": {
195 // CHECK-NEXT:   "offset": 232,
196 // CHECK-NEXT:   "file": "{{.*}}",
197 // CHECK-NEXT:   "line": 9,
198 // CHECK-NEXT:   "col": 16,
199 // CHECK-NEXT:   "tokLen": 5
200 // CHECK-NEXT:  },
201 // CHECK-NEXT:  "range": {
202 // CHECK-NEXT:   "begin": {
203 // CHECK-NEXT:    "offset": 219,
204 // CHECK-NEXT:    "col": 3,
205 // CHECK-NEXT:    "tokLen": 7
206 // CHECK-NEXT:   },
207 // CHECK-NEXT:   "end": {
208 // CHECK-NEXT:    "offset": 253,
209 // CHECK-NEXT:    "col": 37,
210 // CHECK-NEXT:    "tokLen": 1
211 // CHECK-NEXT:   }
212 // CHECK-NEXT:  },
213 // CHECK-NEXT:  "name": "Test6",
214 // CHECK-NEXT:  "mangledName": "_ZN1S5Test6Efi",
215 // CHECK-NEXT:  "type": {
216 // CHECK-NEXT:   "qualType": "void (float, int)"
217 // CHECK-NEXT:  },
218 // CHECK-NEXT:  "virtual": true,
219 // CHECK-NEXT:  "inner": [
220 // CHECK-NEXT:   {
221 // CHECK-NEXT:    "id": "0x{{.*}}",
222 // CHECK-NEXT:    "kind": "ParmVarDecl",
223 // CHECK-NEXT:    "loc": {
224 // CHECK-NEXT:     "offset": 243,
225 // CHECK-NEXT:     "col": 27,
226 // CHECK-NEXT:     "tokLen": 1
227 // CHECK-NEXT:    },
228 // CHECK-NEXT:    "range": {
229 // CHECK-NEXT:     "begin": {
230 // CHECK-NEXT:      "offset": 238,
231 // CHECK-NEXT:      "col": 22,
232 // CHECK-NEXT:      "tokLen": 5
233 // CHECK-NEXT:     },
234 // CHECK-NEXT:     "end": {
235 // CHECK-NEXT:      "offset": 238,
236 // CHECK-NEXT:      "col": 22,
237 // CHECK-NEXT:      "tokLen": 5
238 // CHECK-NEXT:     }
239 // CHECK-NEXT:    },
240 // CHECK-NEXT:    "type": {
241 // CHECK-NEXT:     "qualType": "float"
242 // CHECK-NEXT:    }
243 // CHECK-NEXT:   },
244 // CHECK-NEXT:   {
245 // CHECK-NEXT:    "id": "0x{{.*}}",
246 // CHECK-NEXT:    "kind": "ParmVarDecl",
247 // CHECK-NEXT:    "loc": {
248 // CHECK-NEXT:     "offset": 249,
249 // CHECK-NEXT:     "col": 33,
250 // CHECK-NEXT:     "tokLen": 1
251 // CHECK-NEXT:    },
252 // CHECK-NEXT:    "range": {
253 // CHECK-NEXT:     "begin": {
254 // CHECK-NEXT:      "offset": 245,
255 // CHECK-NEXT:      "col": 29,
256 // CHECK-NEXT:      "tokLen": 3
257 // CHECK-NEXT:     },
258 // CHECK-NEXT:     "end": {
259 // CHECK-NEXT:      "offset": 251,
260 // CHECK-NEXT:      "col": 35,
261 // CHECK-NEXT:      "tokLen": 2
262 // CHECK-NEXT:     }
263 // CHECK-NEXT:    },
264 // CHECK-NEXT:    "type": {
265 // CHECK-NEXT:     "qualType": "int"
266 // CHECK-NEXT:    },
267 // CHECK-NEXT:    "init": "c",
268 // CHECK-NEXT:    "inner": [
269 // CHECK-NEXT:     {
270 // CHECK-NEXT:      "id": "0x{{.*}}",
271 // CHECK-NEXT:      "kind": "IntegerLiteral",
272 // CHECK-NEXT:      "range": {
273 // CHECK-NEXT:       "begin": {
274 // CHECK-NEXT:        "offset": 251,
275 // CHECK-NEXT:        "col": 35,
276 // CHECK-NEXT:        "tokLen": 2
277 // CHECK-NEXT:       },
278 // CHECK-NEXT:       "end": {
279 // CHECK-NEXT:        "offset": 251,
280 // CHECK-NEXT:        "col": 35,
281 // CHECK-NEXT:        "tokLen": 2
282 // CHECK-NEXT:       }
283 // CHECK-NEXT:      },
284 // CHECK-NEXT:      "type": {
285 // CHECK-NEXT:       "qualType": "int"
286 // CHECK-NEXT:      },
287 // CHECK-NEXT:      "valueCategory": "prvalue",
288 // CHECK-NEXT:      "value": "12"
289 // CHECK-NEXT:     }
290 // CHECK-NEXT:    ]
291 // CHECK-NEXT:   }
292 // CHECK-NEXT:  ]
293 // CHECK-NEXT: }
294 
295 
296 // CHECK-NOT: {{^}}Dumping
297 // CHECK:  "kind": "CXXMethodDecl",
298 // CHECK-NEXT:  "loc": {
299 // CHECK-NEXT:   "offset": 271,
300 // CHECK-NEXT:   "file": "{{.*}}",
301 // CHECK-NEXT:   "line": 10,
302 // CHECK-NEXT:   "col": 16,
303 // CHECK-NEXT:   "tokLen": 5
304 // CHECK-NEXT:  },
305 // CHECK-NEXT:  "range": {
306 // CHECK-NEXT:   "begin": {
307 // CHECK-NEXT:    "offset": 258,
308 // CHECK-NEXT:    "col": 3,
309 // CHECK-NEXT:    "tokLen": 7
310 // CHECK-NEXT:   },
311 // CHECK-NEXT:   "end": {
312 // CHECK-NEXT:    "offset": 281,
313 // CHECK-NEXT:    "col": 26,
314 // CHECK-NEXT:    "tokLen": 1
315 // CHECK-NEXT:   }
316 // CHECK-NEXT:  },
317 // CHECK-NEXT:  "name": "Test7",
318 // CHECK-NEXT:  "mangledName": "_ZN1S5Test7Ev",
319 // CHECK-NEXT:  "type": {
320 // CHECK-NEXT:   "qualType": "void ()"
321 // CHECK-NEXT:  },
322 // CHECK-NEXT:  "virtual": true,
323 // CHECK-NEXT:  "pure": true
324 // CHECK-NEXT: }
325 
326 
327 // CHECK-NOT: {{^}}Dumping
328 // CHECK:  "kind": "CXXMethodDecl",
329 // CHECK-NEXT:  "loc": {
330 // CHECK-NEXT:   "offset": 343,
331 // CHECK-NEXT:   "file": "{{.*}}",
332 // CHECK-NEXT:   "line": 14,
333 // CHECK-NEXT:   "col": 8,
334 // CHECK-NEXT:   "tokLen": 5
335 // CHECK-NEXT:  },
336 // CHECK-NEXT:  "range": {
337 // CHECK-NEXT:   "begin": {
338 // CHECK-NEXT:    "offset": 338,
339 // CHECK-NEXT:    "col": 3,
340 // CHECK-NEXT:    "tokLen": 4
341 // CHECK-NEXT:   },
342 // CHECK-NEXT:   "end": {
343 // CHECK-NEXT:    "offset": 367,
344 // CHECK-NEXT:    "col": 32,
345 // CHECK-NEXT:    "tokLen": 8
346 // CHECK-NEXT:   }
347 // CHECK-NEXT:  },
348 // CHECK-NEXT:  "name": "Test6",
349 // CHECK-NEXT:  "mangledName": "_ZN1T5Test6Efi",
350 // CHECK-NEXT:  "type": {
351 // CHECK-NEXT:   "qualType": "void (float, int)"
352 // CHECK-NEXT:  },
353 // CHECK-NEXT:  "inner": [
354 // CHECK-NEXT:   {
355 // CHECK-NEXT:    "id": "0x{{.*}}",
356 // CHECK-NEXT:    "kind": "ParmVarDecl",
357 // CHECK-NEXT:    "loc": {
358 // CHECK-NEXT:     "offset": 354,
359 // CHECK-NEXT:     "col": 19,
360 // CHECK-NEXT:     "tokLen": 1
361 // CHECK-NEXT:    },
362 // CHECK-NEXT:    "range": {
363 // CHECK-NEXT:     "begin": {
364 // CHECK-NEXT:      "offset": 349,
365 // CHECK-NEXT:      "col": 14,
366 // CHECK-NEXT:      "tokLen": 5
367 // CHECK-NEXT:     },
368 // CHECK-NEXT:     "end": {
369 // CHECK-NEXT:      "offset": 349,
370 // CHECK-NEXT:      "col": 14,
371 // CHECK-NEXT:      "tokLen": 5
372 // CHECK-NEXT:     }
373 // CHECK-NEXT:    },
374 // CHECK-NEXT:    "type": {
375 // CHECK-NEXT:     "qualType": "float"
376 // CHECK-NEXT:    }
377 // CHECK-NEXT:   },
378 // CHECK-NEXT:   {
379 // CHECK-NEXT:    "id": "0x{{.*}}",
380 // CHECK-NEXT:    "kind": "ParmVarDecl",
381 // CHECK-NEXT:    "loc": {
382 // CHECK-NEXT:     "offset": 360,
383 // CHECK-NEXT:     "col": 25,
384 // CHECK-NEXT:     "tokLen": 1
385 // CHECK-NEXT:    },
386 // CHECK-NEXT:    "range": {
387 // CHECK-NEXT:     "begin": {
388 // CHECK-NEXT:      "offset": 356,
389 // CHECK-NEXT:      "col": 21,
390 // CHECK-NEXT:      "tokLen": 3
391 // CHECK-NEXT:     },
392 // CHECK-NEXT:     "end": {
393 // CHECK-NEXT:      "offset": 362,
394 // CHECK-NEXT:      "col": 27,
395 // CHECK-NEXT:      "tokLen": 3
396 // CHECK-NEXT:     }
397 // CHECK-NEXT:    },
398 // CHECK-NEXT:    "type": {
399 // CHECK-NEXT:     "qualType": "int"
400 // CHECK-NEXT:    },
401 // CHECK-NEXT:    "init": "c",
402 // CHECK-NEXT:    "inner": [
403 // CHECK-NEXT:     {
404 // CHECK-NEXT:      "id": "0x{{.*}}",
405 // CHECK-NEXT:      "kind": "IntegerLiteral",
406 // CHECK-NEXT:      "range": {
407 // CHECK-NEXT:       "begin": {
408 // CHECK-NEXT:        "offset": 362,
409 // CHECK-NEXT:        "col": 27,
410 // CHECK-NEXT:        "tokLen": 3
411 // CHECK-NEXT:       },
412 // CHECK-NEXT:       "end": {
413 // CHECK-NEXT:        "offset": 362,
414 // CHECK-NEXT:        "col": 27,
415 // CHECK-NEXT:        "tokLen": 3
416 // CHECK-NEXT:       }
417 // CHECK-NEXT:      },
418 // CHECK-NEXT:      "type": {
419 // CHECK-NEXT:       "qualType": "int"
420 // CHECK-NEXT:      },
421 // CHECK-NEXT:      "valueCategory": "prvalue",
422 // CHECK-NEXT:      "value": "100"
423 // CHECK-NEXT:     }
424 // CHECK-NEXT:    ]
425 // CHECK-NEXT:   },
426 // CHECK-NEXT:   {
427 // CHECK-NEXT:    "id": "0x{{.*}}",
428 // CHECK-NEXT:    "kind": "OverrideAttr",
429 // CHECK-NEXT:    "range": {
430 // CHECK-NEXT:     "begin": {
431 // CHECK-NEXT:      "offset": 367,
432 // CHECK-NEXT:      "col": 32,
433 // CHECK-NEXT:      "tokLen": 8
434 // CHECK-NEXT:     },
435 // CHECK-NEXT:     "end": {
436 // CHECK-NEXT:      "offset": 367,
437 // CHECK-NEXT:      "col": 32,
438 // CHECK-NEXT:      "tokLen": 8
439 // CHECK-NEXT:     }
440 // CHECK-NEXT:    }
441 // CHECK-NEXT:   }
442 // CHECK-NEXT:  ]
443 // CHECK-NEXT: }
444 
445 
446 // CHECK-NOT: {{^}}Dumping
447 // CHECK:  "kind": "CXXMethodDecl",
448 // CHECK-NEXT:  "loc": {
449 // CHECK-NEXT:   "offset": 399,
450 // CHECK-NEXT:   "file": "{{.*}}",
451 // CHECK-NEXT:   "line": 18,
452 // CHECK-NEXT:   "col": 8,
453 // CHECK-NEXT:   "tokLen": 5
454 // CHECK-NEXT:  },
455 // CHECK-NEXT:  "range": {
456 // CHECK-NEXT:   "begin": {
457 // CHECK-NEXT:    "offset": 394,
458 // CHECK-NEXT:    "col": 3,
459 // CHECK-NEXT:    "tokLen": 4
460 // CHECK-NEXT:   },
461 // CHECK-NEXT:   "end": {
462 // CHECK-NEXT:    "offset": 405,
463 // CHECK-NEXT:    "col": 14,
464 // CHECK-NEXT:    "tokLen": 1
465 // CHECK-NEXT:   }
466 // CHECK-NEXT:  },
467 // CHECK-NEXT:  "name": "Test1",
468 // CHECK-NEXT:  "mangledName": "_ZN1U5Test1Ev",
469 // CHECK-NEXT:  "type": {
470 // CHECK-NEXT:   "qualType": "void ()"
471 // CHECK-NEXT:  }
472 // CHECK-NEXT: }
473 
474 
475 // CHECK-NOT: {{^}}Dumping
476 // CHECK:  "kind": "CXXMethodDecl",
477 // CHECK-NEXT:  "loc": {
478 // CHECK-NEXT:   "offset": 419,
479 // CHECK-NEXT:   "file": "{{.*}}",
480 // CHECK-NEXT:   "line": 20,
481 // CHECK-NEXT:   "col": 9,
482 // CHECK-NEXT:   "tokLen": 5
483 // CHECK-NEXT:  },
484 // CHECK-NEXT:  "range": {
485 // CHECK-NEXT:   "begin": {
486 // CHECK-NEXT:    "offset": 411,
487 // CHECK-NEXT:    "col": 1,
488 // CHECK-NEXT:    "tokLen": 4
489 // CHECK-NEXT:   },
490 // CHECK-NEXT:   "end": {
491 // CHECK-NEXT:    "offset": 428,
492 // CHECK-NEXT:    "col": 18,
493 // CHECK-NEXT:    "tokLen": 1
494 // CHECK-NEXT:   }
495 // CHECK-NEXT:  },
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 ()"
502 // CHECK-NEXT:  },
503 // CHECK-NEXT:  "inner": [
504 // CHECK-NEXT:   {
505 // CHECK-NEXT:    "id": "0x{{.*}}",
506 // CHECK-NEXT:    "kind": "CompoundStmt",
507 // CHECK-NEXT:    "range": {
508 // CHECK-NEXT:     "begin": {
509 // CHECK-NEXT:      "offset": 427,
510 // CHECK-NEXT:      "col": 17,
511 // CHECK-NEXT:      "tokLen": 1
512 // CHECK-NEXT:     },
513 // CHECK-NEXT:     "end": {
514 // CHECK-NEXT:      "offset": 428,
515 // CHECK-NEXT:      "col": 18,
516 // CHECK-NEXT:      "tokLen": 1
517 // CHECK-NEXT:     }
518 // CHECK-NEXT:    }
519 // CHECK-NEXT:   }
520 // CHECK-NEXT:  ]
521 // CHECK-NEXT: }
522 
523 
524 // CHECK-NOT: {{^}}Dumping
525 // CHECK:  "kind": "FunctionDecl",
526 // CHECK-NEXT:  "loc": {
527 // CHECK-NEXT:   "offset": 446,
528 // CHECK-NEXT:   "file": "{{.*}}",
529 // CHECK-NEXT:   "line": 22,
530 // CHECK-NEXT:   "col": 6,
531 // CHECK-NEXT:   "tokLen": 5
532 // CHECK-NEXT:  },
533 // CHECK-NEXT:  "range": {
534 // CHECK-NEXT:   "begin": {
535 // CHECK-NEXT:    "offset": 441,
536 // CHECK-NEXT:    "col": 1,
537 // CHECK-NEXT:    "tokLen": 4
538 // CHECK-NEXT:   },
539 // CHECK-NEXT:   "end": {
540 // CHECK-NEXT:    "offset": 452,
541 // CHECK-NEXT:    "col": 12,
542 // CHECK-NEXT:    "tokLen": 1
543 // CHECK-NEXT:   }
544 // CHECK-NEXT:  },
545 // CHECK-NEXT:  "isUsed": true,
546 // CHECK-NEXT:  "name": "Test1",
547 // CHECK-NEXT:  "mangledName": "_Z5Test1v",
548 // CHECK-NEXT:  "type": {
549 // CHECK-NEXT:   "qualType": "void ()"
550 // CHECK-NEXT:  }
551 // CHECK-NEXT: }
552 
553 
554 // CHECK-NOT: {{^}}Dumping
555 // CHECK:  "kind": "FunctionDecl",
556 // CHECK-NEXT:  "loc": {
557 // CHECK-NEXT:   "offset": 460,
558 // CHECK-NEXT:   "file": "{{.*}}",
559 // CHECK-NEXT:   "line": 23,
560 // CHECK-NEXT:   "col": 6,
561 // CHECK-NEXT:   "tokLen": 5
562 // CHECK-NEXT:  },
563 // CHECK-NEXT:  "range": {
564 // CHECK-NEXT:   "begin": {
565 // CHECK-NEXT:    "offset": 455,
566 // CHECK-NEXT:    "col": 1,
567 // CHECK-NEXT:    "tokLen": 4
568 // CHECK-NEXT:   },
569 // CHECK-NEXT:   "end": {
570 // CHECK-NEXT:    "offset": 470,
571 // CHECK-NEXT:    "col": 16,
572 // CHECK-NEXT:    "tokLen": 1
573 // CHECK-NEXT:   }
574 // CHECK-NEXT:  },
575 // CHECK-NEXT:  "name": "Test2",
576 // CHECK-NEXT:  "mangledName": "_Z5Test2v",
577 // CHECK-NEXT:  "type": {
578 // CHECK-NEXT:   "qualType": "void ()"
579 // CHECK-NEXT:  }
580 // CHECK-NEXT: }
581 
582 
583 // CHECK-NOT: {{^}}Dumping
584 // CHECK:  "kind": "FunctionDecl",
585 // CHECK-NEXT:  "loc": {
586 // CHECK-NEXT:   "offset": 478,
587 // CHECK-NEXT:   "file": "{{.*}}",
588 // CHECK-NEXT:   "line": 24,
589 // CHECK-NEXT:   "col": 6,
590 // CHECK-NEXT:   "tokLen": 5
591 // CHECK-NEXT:  },
592 // CHECK-NEXT:  "range": {
593 // CHECK-NEXT:   "begin": {
594 // CHECK-NEXT:    "offset": 473,
595 // CHECK-NEXT:    "col": 1,
596 // CHECK-NEXT:    "tokLen": 4
597 // CHECK-NEXT:   },
598 // CHECK-NEXT:   "end": {
599 // CHECK-NEXT:    "offset": 496,
600 // CHECK-NEXT:    "col": 24,
601 // CHECK-NEXT:    "tokLen": 1
602 // CHECK-NEXT:   }
603 // CHECK-NEXT:  },
604 // CHECK-NEXT:  "name": "Test3",
605 // CHECK-NEXT:  "mangledName": "_Z5Test3ii",
606 // CHECK-NEXT:  "type": {
607 // CHECK-NEXT:   "qualType": "void (int, int)"
608 // CHECK-NEXT:  },
609 // CHECK-NEXT:  "inner": [
610 // CHECK-NEXT:   {
611 // CHECK-NEXT:    "id": "0x{{.*}}",
612 // CHECK-NEXT:    "kind": "ParmVarDecl",
613 // CHECK-NEXT:    "loc": {
614 // CHECK-NEXT:     "offset": 488,
615 // CHECK-NEXT:     "col": 16,
616 // CHECK-NEXT:     "tokLen": 1
617 // CHECK-NEXT:    },
618 // CHECK-NEXT:    "range": {
619 // CHECK-NEXT:     "begin": {
620 // CHECK-NEXT:      "offset": 484,
621 // CHECK-NEXT:      "col": 12,
622 // CHECK-NEXT:      "tokLen": 3
623 // CHECK-NEXT:     },
624 // CHECK-NEXT:     "end": {
625 // CHECK-NEXT:      "offset": 488,
626 // CHECK-NEXT:      "col": 16,
627 // CHECK-NEXT:      "tokLen": 1
628 // CHECK-NEXT:     }
629 // CHECK-NEXT:    },
630 // CHECK-NEXT:    "name": "a",
631 // CHECK-NEXT:    "mangledName": "_ZZ5Test3iiE1a",
632 // CHECK-NEXT:    "type": {
633 // CHECK-NEXT:     "qualType": "int"
634 // CHECK-NEXT:    }
635 // CHECK-NEXT:   },
636 // CHECK-NEXT:   {
637 // CHECK-NEXT:    "id": "0x{{.*}}",
638 // CHECK-NEXT:    "kind": "ParmVarDecl",
639 // CHECK-NEXT:    "loc": {
640 // CHECK-NEXT:     "offset": 495,
641 // CHECK-NEXT:     "col": 23,
642 // CHECK-NEXT:     "tokLen": 1
643 // CHECK-NEXT:    },
644 // CHECK-NEXT:    "range": {
645 // CHECK-NEXT:     "begin": {
646 // CHECK-NEXT:      "offset": 491,
647 // CHECK-NEXT:      "col": 19,
648 // CHECK-NEXT:      "tokLen": 3
649 // CHECK-NEXT:     },
650 // CHECK-NEXT:     "end": {
651 // CHECK-NEXT:      "offset": 495,
652 // CHECK-NEXT:      "col": 23,
653 // CHECK-NEXT:      "tokLen": 1
654 // CHECK-NEXT:     }
655 // CHECK-NEXT:    },
656 // CHECK-NEXT:    "name": "b",
657 // CHECK-NEXT:    "mangledName": "_ZZ5Test3iiE1b",
658 // CHECK-NEXT:    "type": {
659 // CHECK-NEXT:     "qualType": "int"
660 // CHECK-NEXT:    }
661 // CHECK-NEXT:   }
662 // CHECK-NEXT:  ]
663 // CHECK-NEXT: }
664 
665 
666 // CHECK-NOT: {{^}}Dumping
667 // CHECK:  "kind": "FunctionDecl",
668 // CHECK-NEXT:  "loc": {
669 // CHECK-NEXT:   "offset": 504,
670 // CHECK-NEXT:   "file": "{{.*}}",
671 // CHECK-NEXT:   "line": 25,
672 // CHECK-NEXT:   "col": 6,
673 // CHECK-NEXT:   "tokLen": 5
674 // CHECK-NEXT:  },
675 // CHECK-NEXT:  "range": {
676 // CHECK-NEXT:   "begin": {
677 // CHECK-NEXT:    "offset": 499,
678 // CHECK-NEXT:    "col": 1,
679 // CHECK-NEXT:    "tokLen": 4
680 // CHECK-NEXT:   },
681 // CHECK-NEXT:   "end": {
682 // CHECK-NEXT:    "offset": 527,
683 // CHECK-NEXT:    "col": 29,
684 // CHECK-NEXT:    "tokLen": 1
685 // CHECK-NEXT:   }
686 // CHECK-NEXT:  },
687 // CHECK-NEXT:  "name": "Test4",
688 // CHECK-NEXT:  "mangledName": "_Z5Test4ii",
689 // CHECK-NEXT:  "type": {
690 // CHECK-NEXT:   "qualType": "void (int, int)"
691 // CHECK-NEXT:  },
692 // CHECK-NEXT:  "inner": [
693 // CHECK-NEXT:   {
694 // CHECK-NEXT:    "id": "0x{{.*}}",
695 // CHECK-NEXT:    "kind": "ParmVarDecl",
696 // CHECK-NEXT:    "loc": {
697 // CHECK-NEXT:     "offset": 514,
698 // CHECK-NEXT:     "col": 16,
699 // CHECK-NEXT:     "tokLen": 1
700 // CHECK-NEXT:    },
701 // CHECK-NEXT:    "range": {
702 // CHECK-NEXT:     "begin": {
703 // CHECK-NEXT:      "offset": 510,
704 // CHECK-NEXT:      "col": 12,
705 // CHECK-NEXT:      "tokLen": 3
706 // CHECK-NEXT:     },
707 // CHECK-NEXT:     "end": {
708 // CHECK-NEXT:      "offset": 514,
709 // CHECK-NEXT:      "col": 16,
710 // CHECK-NEXT:      "tokLen": 1
711 // CHECK-NEXT:     }
712 // CHECK-NEXT:    },
713 // CHECK-NEXT:    "name": "a",
714 // CHECK-NEXT:    "mangledName": "_ZZ5Test4iiE1a",
715 // CHECK-NEXT:    "type": {
716 // CHECK-NEXT:     "qualType": "int"
717 // CHECK-NEXT:    }
718 // CHECK-NEXT:   },
719 // CHECK-NEXT:   {
720 // CHECK-NEXT:    "id": "0x{{.*}}",
721 // CHECK-NEXT:    "kind": "ParmVarDecl",
722 // CHECK-NEXT:    "loc": {
723 // CHECK-NEXT:     "offset": 521,
724 // CHECK-NEXT:     "col": 23,
725 // CHECK-NEXT:     "tokLen": 1
726 // CHECK-NEXT:    },
727 // CHECK-NEXT:    "range": {
728 // CHECK-NEXT:     "begin": {
729 // CHECK-NEXT:      "offset": 517,
730 // CHECK-NEXT:      "col": 19,
731 // CHECK-NEXT:      "tokLen": 3
732 // CHECK-NEXT:     },
733 // CHECK-NEXT:     "end": {
734 // CHECK-NEXT:      "offset": 525,
735 // CHECK-NEXT:      "col": 27,
736 // CHECK-NEXT:      "tokLen": 2
737 // CHECK-NEXT:     }
738 // CHECK-NEXT:    },
739 // CHECK-NEXT:    "name": "b",
740 // CHECK-NEXT:    "mangledName": "_ZZ5Test4iiE1b",
741 // CHECK-NEXT:    "type": {
742 // CHECK-NEXT:     "qualType": "int"
743 // CHECK-NEXT:    },
744 // CHECK-NEXT:    "init": "c",
745 // CHECK-NEXT:    "inner": [
746 // CHECK-NEXT:     {
747 // CHECK-NEXT:      "id": "0x{{.*}}",
748 // CHECK-NEXT:      "kind": "IntegerLiteral",
749 // CHECK-NEXT:      "range": {
750 // CHECK-NEXT:       "begin": {
751 // CHECK-NEXT:        "offset": 525,
752 // CHECK-NEXT:        "col": 27,
753 // CHECK-NEXT:        "tokLen": 2
754 // CHECK-NEXT:       },
755 // CHECK-NEXT:       "end": {
756 // CHECK-NEXT:        "offset": 525,
757 // CHECK-NEXT:        "col": 27,
758 // CHECK-NEXT:        "tokLen": 2
759 // CHECK-NEXT:       }
760 // CHECK-NEXT:      },
761 // CHECK-NEXT:      "type": {
762 // CHECK-NEXT:       "qualType": "int"
763 // CHECK-NEXT:      },
764 // CHECK-NEXT:      "valueCategory": "prvalue",
765 // CHECK-NEXT:      "value": "12"
766 // CHECK-NEXT:     }
767 // CHECK-NEXT:    ]
768 // CHECK-NEXT:   }
769 // CHECK-NEXT:  ]
770 // CHECK-NEXT: }
771 
772 
773 // CHECK-NOT: {{^}}Dumping
774 // CHECK:  "kind": "FunctionDecl",
775 // CHECK-NEXT:  "loc": {
776 // CHECK-NEXT:   "offset": 545,
777 // CHECK-NEXT:   "file": "{{.*}}",
778 // CHECK-NEXT:   "line": 26,
779 // CHECK-NEXT:   "col": 16,
780 // CHECK-NEXT:   "tokLen": 5
781 // CHECK-NEXT:  },
782 // CHECK-NEXT:  "range": {
783 // CHECK-NEXT:   "begin": {
784 // CHECK-NEXT:    "offset": 530,
785 // CHECK-NEXT:    "col": 1,
786 // CHECK-NEXT:    "tokLen": 9
787 // CHECK-NEXT:   },
788 // CHECK-NEXT:   "end": {
789 // CHECK-NEXT:    "offset": 555,
790 // CHECK-NEXT:    "col": 26,
791 // CHECK-NEXT:    "tokLen": 1
792 // CHECK-NEXT:   }
793 // CHECK-NEXT:  },
794 // CHECK-NEXT:  "name": "Test5",
795 // CHECK-NEXT:  "mangledName": "_Z5Test5v",
796 // CHECK-NEXT:  "type": {
797 // CHECK-NEXT:   "qualType": "void ()"
798 // CHECK-NEXT:  },
799 // CHECK-NEXT:  "constexpr": true
800 // CHECK-NEXT: }
801 
802 
803 // CHECK-NOT: {{^}}Dumping
804 // CHECK:  "kind": "FunctionDecl",
805 // CHECK-NEXT:  "loc": {
806 // CHECK-NEXT:   "offset": 570,
807 // CHECK-NEXT:   "file": "{{.*}}",
808 // CHECK-NEXT:   "line": 27,
809 // CHECK-NEXT:   "col": 13,
810 // CHECK-NEXT:   "tokLen": 5
811 // CHECK-NEXT:  },
812 // CHECK-NEXT:  "range": {
813 // CHECK-NEXT:   "begin": {
814 // CHECK-NEXT:    "offset": 558,
815 // CHECK-NEXT:    "col": 1,
816 // CHECK-NEXT:    "tokLen": 6
817 // CHECK-NEXT:   },
818 // CHECK-NEXT:   "end": {
819 // CHECK-NEXT:    "offset": 580,
820 // CHECK-NEXT:    "col": 23,
821 // CHECK-NEXT:    "tokLen": 1
822 // CHECK-NEXT:   }
823 // CHECK-NEXT:  },
824 // CHECK-NEXT:  "name": "Test6",
825 // CHECK-NEXT:  "mangledName": "_ZL5Test6v",
826 // CHECK-NEXT:  "type": {
827 // CHECK-NEXT:   "qualType": "void ()"
828 // CHECK-NEXT:  },
829 // CHECK-NEXT:  "storageClass": "static"
830 // CHECK-NEXT: }
831 
832 
833 // CHECK-NOT: {{^}}Dumping
834 // CHECK:  "kind": "FunctionDecl",
835 // CHECK-NEXT:  "loc": {
836 // CHECK-NEXT:   "offset": 595,
837 // CHECK-NEXT:   "file": "{{.*}}",
838 // CHECK-NEXT:   "line": 28,
839 // CHECK-NEXT:   "col": 13,
840 // CHECK-NEXT:   "tokLen": 5
841 // CHECK-NEXT:  },
842 // CHECK-NEXT:  "range": {
843 // CHECK-NEXT:   "begin": {
844 // CHECK-NEXT:    "offset": 583,
845 // CHECK-NEXT:    "col": 1,
846 // CHECK-NEXT:    "tokLen": 6
847 // CHECK-NEXT:   },
848 // CHECK-NEXT:   "end": {
849 // CHECK-NEXT:    "offset": 605,
850 // CHECK-NEXT:    "col": 23,
851 // CHECK-NEXT:    "tokLen": 1
852 // CHECK-NEXT:   }
853 // CHECK-NEXT:  },
854 // CHECK-NEXT:  "name": "Test7",
855 // CHECK-NEXT:  "mangledName": "_Z5Test7v",
856 // CHECK-NEXT:  "type": {
857 // CHECK-NEXT:   "qualType": "void ()"
858 // CHECK-NEXT:  },
859 // CHECK-NEXT:  "storageClass": "extern"
860 // CHECK-NEXT: }
861 
862 
863 // CHECK-NOT: {{^}}Dumping
864 // CHECK:  "kind": "FunctionDecl",
865 // CHECK-NEXT:  "loc": {
866 // CHECK-NEXT:   "offset": 620,
867 // CHECK-NEXT:   "file": "{{.*}}",
868 // CHECK-NEXT:   "line": 29,
869 // CHECK-NEXT:   "col": 13,
870 // CHECK-NEXT:   "tokLen": 5
871 // CHECK-NEXT:  },
872 // CHECK-NEXT:  "range": {
873 // CHECK-NEXT:   "begin": {
874 // CHECK-NEXT:    "offset": 608,
875 // CHECK-NEXT:    "col": 1,
876 // CHECK-NEXT:    "tokLen": 6
877 // CHECK-NEXT:   },
878 // CHECK-NEXT:   "end": {
879 // CHECK-NEXT:    "offset": 630,
880 // CHECK-NEXT:    "col": 23,
881 // CHECK-NEXT:    "tokLen": 1
882 // CHECK-NEXT:   }
883 // CHECK-NEXT:  },
884 // CHECK-NEXT:  "name": "Test8",
885 // CHECK-NEXT:  "mangledName": "_Z5Test8v",
886 // CHECK-NEXT:  "type": {
887 // CHECK-NEXT:   "qualType": "void ()"
888 // CHECK-NEXT:  },
889 // CHECK-NEXT:  "inline": true
890 // CHECK-NEXT: }
891 
892 
893 // CHECK-NOT: {{^}}Dumping
894 // CHECK:  "kind": "FunctionDecl",
895 // CHECK-NEXT:  "loc": {
896 // CHECK-NEXT:   "offset": 638,
897 // CHECK-NEXT:   "file": "{{.*}}",
898 // CHECK-NEXT:   "line": 30,
899 // CHECK-NEXT:   "col": 6,
900 // CHECK-NEXT:   "tokLen": 5
901 // CHECK-NEXT:  },
902 // CHECK-NEXT:  "range": {
903 // CHECK-NEXT:   "begin": {
904 // CHECK-NEXT:    "offset": 633,
905 // CHECK-NEXT:    "col": 1,
906 // CHECK-NEXT:    "tokLen": 4
907 // CHECK-NEXT:   },
908 // CHECK-NEXT:   "end": {
909 // CHECK-NEXT:    "offset": 650,
910 // CHECK-NEXT:    "col": 18,
911 // CHECK-NEXT:    "tokLen": 8
912 // CHECK-NEXT:   }
913 // CHECK-NEXT:  },
914 // CHECK-NEXT:  "name": "Test9",
915 // CHECK-NEXT:  "mangledName": "_Z5Test9v",
916 // CHECK-NEXT:  "type": {
917 // CHECK-NEXT:   "qualType": "void () noexcept"
918 // CHECK-NEXT:  }
919 // CHECK-NEXT: }
920 
921 
922 // CHECK-NOT: {{^}}Dumping
923 // CHECK:  "kind": "FunctionDecl",
924 // CHECK-NEXT:  "loc": {
925 // CHECK-NEXT:   "offset": 665,
926 // CHECK-NEXT:   "file": "{{.*}}",
927 // CHECK-NEXT:   "line": 31,
928 // CHECK-NEXT:   "col": 6,
929 // CHECK-NEXT:   "tokLen": 6
930 // CHECK-NEXT:  },
931 // CHECK-NEXT:  "range": {
932 // CHECK-NEXT:   "begin": {
933 // CHECK-NEXT:    "offset": 660,
934 // CHECK-NEXT:    "col": 1,
935 // CHECK-NEXT:    "tokLen": 4
936 // CHECK-NEXT:   },
937 // CHECK-NEXT:   "end": {
938 // CHECK-NEXT:    "offset": 692,
939 // CHECK-NEXT:    "col": 33,
940 // CHECK-NEXT:    "tokLen": 1
941 // CHECK-NEXT:   }
942 // CHECK-NEXT:  },
943 // CHECK-NEXT:  "name": "Test10",
944 // CHECK-NEXT:  "mangledName": "_Z6Test10v",
945 // CHECK-NEXT:  "type": {
946 // CHECK-NEXT:   "qualType": "void () noexcept(false)"
947 // CHECK-NEXT:  }
948 // CHECK-NEXT: }
949 
950 
951 // CHECK-NOT: {{^}}Dumping
952 // CHECK:  "kind": "FunctionDecl",
953 // CHECK-NEXT:  "loc": {
954 // CHECK-NEXT:   "offset": 700,
955 // CHECK-NEXT:   "file": "{{.*}}",
956 // CHECK-NEXT:   "line": 32,
957 // CHECK-NEXT:   "col": 6,
958 // CHECK-NEXT:   "tokLen": 6
959 // CHECK-NEXT:  },
960 // CHECK-NEXT:  "range": {
961 // CHECK-NEXT:   "begin": {
962 // CHECK-NEXT:    "offset": 695,
963 // CHECK-NEXT:    "col": 1,
964 // CHECK-NEXT:    "tokLen": 4
965 // CHECK-NEXT:   },
966 // CHECK-NEXT:   "end": {
967 // CHECK-NEXT:    "offset": 723,
968 // CHECK-NEXT:    "col": 29,
969 // CHECK-NEXT:    "tokLen": 1
970 // CHECK-NEXT:   }
971 // CHECK-NEXT:  },
972 // CHECK-NEXT:  "name": "Test11",
973 // CHECK-NEXT:  "mangledName": "_Z6Test11v",
974 // CHECK-NEXT:  "type": {
975 // CHECK-NEXT:   "qualType": "void () noexcept(1)"
976 // CHECK-NEXT:  }
977 // CHECK-NEXT: }
978 
979 
980 // CHECK-NOT: {{^}}Dumping
981 // CHECK:  "kind": "FunctionTemplateDecl",
982 // CHECK-NEXT:  "loc": {
983 // CHECK-NEXT:   "offset": 751,
984 // CHECK-NEXT:   "file": "{{.*}}",
985 // CHECK-NEXT:   "line": 35,
986 // CHECK-NEXT:   "col": 3,
987 // CHECK-NEXT:   "tokLen": 6
988 // CHECK-NEXT:  },
989 // CHECK-NEXT:  "range": {
990 // CHECK-NEXT:   "begin": {
991 // CHECK-NEXT:    "offset": 727,
992 // CHECK-NEXT:    "line": 34,
993 // CHECK-NEXT:    "col": 1,
994 // CHECK-NEXT:    "tokLen": 8
995 // CHECK-NEXT:   },
996 // CHECK-NEXT:   "end": {
997 // CHECK-NEXT:    "offset": 760,
998 // CHECK-NEXT:    "line": 35,
999 // CHECK-NEXT:    "col": 12,
1000 // CHECK-NEXT:    "tokLen": 1
1001 // CHECK-NEXT:   }
1002 // CHECK-NEXT:  },
1003 // CHECK-NEXT:  "name": "Test12",
1004 // CHECK-NEXT:  "inner": [
1005 // CHECK-NEXT:   {
1006 // CHECK-NEXT:    "id": "0x{{.*}}",
1007 // CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
1008 // CHECK-NEXT:    "loc": {
1009 // CHECK-NEXT:     "offset": 746,
1010 // CHECK-NEXT:     "line": 34,
1011 // CHECK-NEXT:     "col": 20,
1012 // CHECK-NEXT:     "tokLen": 1
1013 // CHECK-NEXT:    },
1014 // CHECK-NEXT:    "range": {
1015 // CHECK-NEXT:     "begin": {
1016 // CHECK-NEXT:      "offset": 737,
1017 // CHECK-NEXT:      "col": 11,
1018 // CHECK-NEXT:      "tokLen": 8
1019 // CHECK-NEXT:     },
1020 // CHECK-NEXT:     "end": {
1021 // CHECK-NEXT:      "offset": 746,
1022 // CHECK-NEXT:      "col": 20,
1023 // CHECK-NEXT:      "tokLen": 1
1024 // CHECK-NEXT:     }
1025 // CHECK-NEXT:    },
1026 // CHECK-NEXT:    "isReferenced": true,
1027 // CHECK-NEXT:    "name": "T",
1028 // CHECK-NEXT:    "tagUsed": "typename",
1029 // CHECK-NEXT:    "depth": 0,
1030 // CHECK-NEXT:    "index": 0
1031 // CHECK-NEXT:   },
1032 // CHECK-NEXT:   {
1033 // CHECK-NEXT:    "id": "0x{{.*}}",
1034 // CHECK-NEXT:    "kind": "FunctionDecl",
1035 // CHECK-NEXT:    "loc": {
1036 // CHECK-NEXT:     "offset": 751,
1037 // CHECK-NEXT:     "line": 35,
1038 // CHECK-NEXT:     "col": 3,
1039 // CHECK-NEXT:     "tokLen": 6
1040 // CHECK-NEXT:    },
1041 // CHECK-NEXT:    "range": {
1042 // CHECK-NEXT:     "begin": {
1043 // CHECK-NEXT:      "offset": 749,
1044 // CHECK-NEXT:      "col": 1,
1045 // CHECK-NEXT:      "tokLen": 1
1046 // CHECK-NEXT:     },
1047 // CHECK-NEXT:     "end": {
1048 // CHECK-NEXT:      "offset": 760,
1049 // CHECK-NEXT:      "col": 12,
1050 // CHECK-NEXT:      "tokLen": 1
1051 // CHECK-NEXT:     }
1052 // CHECK-NEXT:    },
1053 // CHECK-NEXT:    "name": "Test12",
1054 // CHECK-NEXT:    "type": {
1055 // CHECK-NEXT:     "qualType": "T (T &)"
1056 // CHECK-NEXT:    },
1057 // CHECK-NEXT:    "inner": [
1058 // CHECK-NEXT:     {
1059 // CHECK-NEXT:      "id": "0x{{.*}}",
1060 // CHECK-NEXT:      "kind": "ParmVarDecl",
1061 // CHECK-NEXT:      "loc": {
1062 // CHECK-NEXT:       "offset": 760,
1063 // CHECK-NEXT:       "col": 12,
1064 // CHECK-NEXT:       "tokLen": 1
1065 // CHECK-NEXT:      },
1066 // CHECK-NEXT:      "range": {
1067 // CHECK-NEXT:       "begin": {
1068 // CHECK-NEXT:        "offset": 758,
1069 // CHECK-NEXT:        "col": 10,
1070 // CHECK-NEXT:        "tokLen": 1
1071 // CHECK-NEXT:       },
1072 // CHECK-NEXT:       "end": {
1073 // CHECK-NEXT:        "offset": 759,
1074 // CHECK-NEXT:        "col": 11,
1075 // CHECK-NEXT:        "tokLen": 1
1076 // CHECK-NEXT:       }
1077 // CHECK-NEXT:      },
1078 // CHECK-NEXT:      "type": {
1079 // CHECK-NEXT:       "qualType": "T &"
1080 // CHECK-NEXT:      }
1081 // CHECK-NEXT:     }
1082 // CHECK-NEXT:    ]
1083 // CHECK-NEXT:   }
1084 // CHECK-NEXT:  ]
1085 // CHECK-NEXT: }
1086 
1087 
1088 // CHECK-NOT: {{^}}Dumping
1089 // CHECK:  "kind": "FunctionDecl",
1090 // CHECK-NEXT:  "loc": {
1091 // CHECK-NEXT:   "offset": 769,
1092 // CHECK-NEXT:   "file": "{{.*}}",
1093 // CHECK-NEXT:   "line": 37,
1094 // CHECK-NEXT:   "col": 6,
1095 // CHECK-NEXT:   "tokLen": 6
1096 // CHECK-NEXT:  },
1097 // CHECK-NEXT:  "range": {
1098 // CHECK-NEXT:   "begin": {
1099 // CHECK-NEXT:    "offset": 764,
1100 // CHECK-NEXT:    "col": 1,
1101 // CHECK-NEXT:    "tokLen": 4
1102 // CHECK-NEXT:   },
1103 // CHECK-NEXT:   "end": {
1104 // CHECK-NEXT:    "offset": 782,
1105 // CHECK-NEXT:    "col": 19,
1106 // CHECK-NEXT:    "tokLen": 1
1107 // CHECK-NEXT:   }
1108 // CHECK-NEXT:  },
1109 // CHECK-NEXT:  "name": "Test13",
1110 // CHECK-NEXT:  "mangledName": "_Z6Test13i",
1111 // CHECK-NEXT:  "type": {
1112 // CHECK-NEXT:   "qualType": "void (int)"
1113 // CHECK-NEXT:  },
1114 // CHECK-NEXT:  "inner": [
1115 // CHECK-NEXT:   {
1116 // CHECK-NEXT:    "id": "0x{{.*}}",
1117 // CHECK-NEXT:    "kind": "ParmVarDecl",
1118 // CHECK-NEXT:    "loc": {
1119 // CHECK-NEXT:     "offset": 779,
1120 // CHECK-NEXT:     "col": 16,
1121 // CHECK-NEXT:     "tokLen": 1
1122 // CHECK-NEXT:    },
1123 // CHECK-NEXT:    "range": {
1124 // CHECK-NEXT:     "begin": {
1125 // CHECK-NEXT:      "offset": 776,
1126 // CHECK-NEXT:      "col": 13,
1127 // CHECK-NEXT:      "tokLen": 3
1128 // CHECK-NEXT:     },
1129 // CHECK-NEXT:     "end": {
1130 // CHECK-NEXT:      "offset": 776,
1131 // CHECK-NEXT:      "col": 13,
1132 // CHECK-NEXT:      "tokLen": 3
1133 // CHECK-NEXT:     }
1134 // CHECK-NEXT:    },
1135 // CHECK-NEXT:    "type": {
1136 // CHECK-NEXT:     "qualType": "int"
1137 // CHECK-NEXT:    }
1138 // CHECK-NEXT:   },
1139 // CHECK-NEXT:   {
1140 // CHECK-NEXT:    "id": "0x{{.*}}",
1141 // CHECK-NEXT:    "kind": "CompoundStmt",
1142 // CHECK-NEXT:    "range": {
1143 // CHECK-NEXT:     "begin": {
1144 // CHECK-NEXT:      "offset": 781,
1145 // CHECK-NEXT:      "col": 18,
1146 // CHECK-NEXT:      "tokLen": 1
1147 // CHECK-NEXT:     },
1148 // CHECK-NEXT:     "end": {
1149 // CHECK-NEXT:      "offset": 782,
1150 // CHECK-NEXT:      "col": 19,
1151 // CHECK-NEXT:      "tokLen": 1
1152 // CHECK-NEXT:     }
1153 // CHECK-NEXT:    }
1154 // CHECK-NEXT:   }
1155 // CHECK-NEXT:  ]
1156 // CHECK-NEXT: }
1157 
1158 
1159 // CHECK-NOT: {{^}}Dumping
1160 // CHECK:  "kind": "FunctionDecl",
1161 // CHECK-NEXT:  "loc": {
1162 // CHECK-NEXT:   "offset": 789,
1163 // CHECK-NEXT:   "file": "{{.*}}",
1164 // CHECK-NEXT:   "line": 38,
1165 // CHECK-NEXT:   "col": 6,
1166 // CHECK-NEXT:   "tokLen": 6
1167 // CHECK-NEXT:  },
1168 // CHECK-NEXT:  "range": {
1169 // CHECK-NEXT:   "begin": {
1170 // CHECK-NEXT:    "offset": 784,
1171 // CHECK-NEXT:    "col": 1,
1172 // CHECK-NEXT:    "tokLen": 4
1173 // CHECK-NEXT:   },
1174 // CHECK-NEXT:   "end": {
1175 // CHECK-NEXT:    "offset": 807,
1176 // CHECK-NEXT:    "col": 24,
1177 // CHECK-NEXT:    "tokLen": 1
1178 // CHECK-NEXT:   }
1179 // CHECK-NEXT:  },
1180 // CHECK-NEXT:  "name": "Test14",
1181 // CHECK-NEXT:  "mangledName": "_Z6Test14iz",
1182 // CHECK-NEXT:  "type": {
1183 // CHECK-NEXT:   "qualType": "void (int, ...)"
1184 // CHECK-NEXT:  },
1185 // CHECK-NEXT:  "variadic": true,
1186 // CHECK-NEXT:  "inner": [
1187 // CHECK-NEXT:   {
1188 // CHECK-NEXT:    "id": "0x{{.*}}",
1189 // CHECK-NEXT:    "kind": "ParmVarDecl",
1190 // CHECK-NEXT:    "loc": {
1191 // CHECK-NEXT:     "offset": 799,
1192 // CHECK-NEXT:     "col": 16,
1193 // CHECK-NEXT:     "tokLen": 1
1194 // CHECK-NEXT:    },
1195 // CHECK-NEXT:    "range": {
1196 // CHECK-NEXT:     "begin": {
1197 // CHECK-NEXT:      "offset": 796,
1198 // CHECK-NEXT:      "col": 13,
1199 // CHECK-NEXT:      "tokLen": 3
1200 // CHECK-NEXT:     },
1201 // CHECK-NEXT:     "end": {
1202 // CHECK-NEXT:      "offset": 796,
1203 // CHECK-NEXT:      "col": 13,
1204 // CHECK-NEXT:      "tokLen": 3
1205 // CHECK-NEXT:     }
1206 // CHECK-NEXT:    },
1207 // CHECK-NEXT:    "type": {
1208 // CHECK-NEXT:     "qualType": "int"
1209 // CHECK-NEXT:    }
1210 // CHECK-NEXT:   },
1211 // CHECK-NEXT:   {
1212 // CHECK-NEXT:    "id": "0x{{.*}}",
1213 // CHECK-NEXT:    "kind": "CompoundStmt",
1214 // CHECK-NEXT:    "range": {
1215 // CHECK-NEXT:     "begin": {
1216 // CHECK-NEXT:      "offset": 806,
1217 // CHECK-NEXT:      "col": 23,
1218 // CHECK-NEXT:      "tokLen": 1
1219 // CHECK-NEXT:     },
1220 // CHECK-NEXT:     "end": {
1221 // CHECK-NEXT:      "offset": 807,
1222 // CHECK-NEXT:      "col": 24,
1223 // CHECK-NEXT:      "tokLen": 1
1224 // CHECK-NEXT:     }
1225 // CHECK-NEXT:    }
1226 // CHECK-NEXT:   }
1227 // CHECK-NEXT:  ]
1228 // CHECK-NEXT: }
1229