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