1{
2 "array_types" :
3 [
4  {
5   "alignment" : 4,
6   "linker_set_key" : "_ZTIA2_i",
7   "name" : "int[2]",
8   "referenced_type" : "_ZTIi",
9   "size" : 8,
10   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
11  }
12 ],
13 "builtin_types" :
14 [
15  {
16   "alignment" : 4,
17   "is_integral" : true,
18   "linker_set_key" : "_ZTIi",
19   "name" : "int",
20   "size" : 4
21  },
22  {
23   "alignment" : 2,
24   "is_integral" : true,
25   "linker_set_key" : "_ZTIs",
26   "name" : "short",
27   "size" : 2
28  },
29  {
30   "linker_set_key" : "_ZTIv",
31   "name" : "void"
32  }
33 ],
34 "elf_functions" :
35 [
36  {
37   "name" : "_Z15PassByReferenceR7Struct1R7Struct2"
38  }
39 ],
40 "elf_objects" : [],
41 "enum_types" : [],
42 "function_types" : [],
43 "functions" :
44 [
45  {
46   "function_name" : "PassByReference",
47   "linker_set_key" : "_Z15PassByReferenceR7Struct1R7Struct2",
48   "parameters" :
49   [
50    {
51     "referenced_type" : "_ZTIR7Struct1"
52    },
53    {
54     "referenced_type" : "_ZTIR7Struct2"
55    }
56   ],
57   "return_type" : "_ZTIR7Vtable3",
58   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
59  }
60 ],
61 "global_vars" : [],
62 "lvalue_reference_types" :
63 [
64  {
65   "alignment" : 8,
66   "linker_set_key" : "_ZTIR7Struct1",
67   "name" : "Struct1 &",
68   "referenced_type" : "_ZTI7Struct1",
69   "size" : 8,
70   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
71  },
72  {
73   "alignment" : 8,
74   "linker_set_key" : "_ZTIR7Struct2",
75   "name" : "Struct2 &",
76   "referenced_type" : "_ZTI7Struct2",
77   "size" : 8,
78   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
79  },
80  {
81   "alignment" : 8,
82   "linker_set_key" : "_ZTIR7Vtable3",
83   "name" : "Vtable3 &",
84   "referenced_type" : "_ZTI7Vtable3",
85   "size" : 8,
86   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
87  }
88 ],
89 "pointer_types" :
90 [
91  {
92   "alignment" : 8,
93   "linker_set_key" : "_ZTIP7Vtable1",
94   "name" : "Vtable1 *",
95   "referenced_type" : "_ZTI7Vtable1",
96   "size" : 8,
97   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
98  },
99  {
100   "alignment" : 8,
101   "linker_set_key" : "_ZTIP7Vtable2",
102   "name" : "Vtable2 *",
103   "referenced_type" : "_ZTI7Vtable2",
104   "size" : 8,
105   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
106  },
107  {
108   "alignment" : 8,
109   "linker_set_key" : "_ZTIP7Vtable3",
110   "name" : "Vtable3 *",
111   "referenced_type" : "_ZTI7Vtable3",
112   "size" : 8,
113   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
114  }
115 ],
116 "qualified_types" : [],
117 "record_types" :
118 [
119  {
120   "alignment" : 4,
121   "fields" :
122   [
123    {
124     "field_name" : "offset_0",
125     "referenced_type" : "_ZTIs"
126    },
127    {
128     "field_name" : "offset_16",
129     "field_offset" : 16,
130     "referenced_type" : "_ZTIs"
131    },
132    {
133     "field_name" : "offset_32",
134     "field_offset" : 32,
135     "referenced_type" : "_ZTIi"
136    },
137    {
138     "field_name" : "offset_64",
139     "field_offset" : 64,
140     "referenced_type" : "_ZTIi"
141    }
142   ],
143   "linker_set_key" : "_ZTI7Struct1",
144   "name" : "Struct1",
145   "size" : 12,
146   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
147  },
148  {
149   "alignment" : 4,
150   "fields" :
151   [
152    {
153     "field_name" : "member",
154     "referenced_type" : "_ZTIN7Struct26NestedE"
155    }
156   ],
157   "linker_set_key" : "_ZTI7Struct2",
158   "name" : "Struct2",
159   "size" : 8,
160   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
161  },
162  {
163   "alignment" : 8,
164   "fields" :
165   [
166    {
167     "field_name" : "member_1",
168     "field_offset" : 64,
169     "referenced_type" : "_ZTIi"
170    },
171    {
172     "field_name" : "added_member_1",
173     "field_offset" : 96,
174     "referenced_type" : "_ZTIi"
175    }
176   ],
177   "linker_set_key" : "_ZTI7Vtable1",
178   "name" : "Vtable1",
179   "size" : 16,
180   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h",
181   "vtable_components" :
182   [
183    {
184     "kind" : "offset_to_top"
185    },
186    {
187     "kind" : "rtti",
188     "mangled_component_name" : "_ZTI7Vtable1"
189    },
190    {
191     "kind" : "complete_dtor_pointer",
192     "mangled_component_name" : "_ZN7Vtable1D1Ev"
193    },
194    {
195     "kind" : "deleting_dtor_pointer",
196     "mangled_component_name" : "_ZN7Vtable1D0Ev"
197    },
198    {
199     "is_pure" : true,
200     "mangled_component_name" : "_ZN7Vtable110function_1Ev"
201    },
202    {
203     "is_pure" : true,
204     "mangled_component_name" : "_ZN7Vtable116added_function_1Ev"
205    }
206   ]
207  },
208  {
209   "alignment" : 8,
210   "fields" :
211   [
212    {
213     "field_name" : "member_2",
214     "field_offset" : 64,
215     "referenced_type" : "_ZTIi"
216    },
217    {
218     "field_name" : "added_member_2",
219     "field_offset" : 96,
220     "referenced_type" : "_ZTIi"
221    }
222   ],
223   "linker_set_key" : "_ZTI7Vtable2",
224   "name" : "Vtable2",
225   "size" : 16,
226   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h",
227   "vtable_components" :
228   [
229    {
230     "kind" : "offset_to_top"
231    },
232    {
233     "kind" : "rtti",
234     "mangled_component_name" : "_ZTI7Vtable2"
235    },
236    {
237     "mangled_component_name" : "_ZN7Vtable210function_2Ev"
238    },
239    {
240     "is_pure" : true,
241     "mangled_component_name" : "_ZN7Vtable216added_function_2Ev"
242    },
243    {
244     "kind" : "complete_dtor_pointer",
245     "mangled_component_name" : "_ZN7Vtable2D1Ev"
246    },
247    {
248     "kind" : "deleting_dtor_pointer",
249     "mangled_component_name" : "_ZN7Vtable2D0Ev"
250    }
251   ]
252  },
253  {
254   "alignment" : 8,
255   "base_specifiers" :
256   [
257    {
258     "is_virtual" : true,
259     "referenced_type" : "_ZTI7Vtable1"
260    },
261    {
262     "is_virtual" : true,
263     "referenced_type" : "_ZTI7Vtable2"
264    }
265   ],
266   "fields" :
267   [
268    {
269     "field_name" : "member_3",
270     "field_offset" : 64,
271     "referenced_type" : "_ZTIi"
272    },
273    {
274     "field_name" : "added_member_3",
275     "field_offset" : 96,
276     "referenced_type" : "_ZTIi"
277    }
278   ],
279   "linker_set_key" : "_ZTI7Vtable3",
280   "name" : "Vtable3",
281   "size" : 48,
282   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h",
283   "vtable_components" :
284   [
285    {
286     "component_value" : 32,
287     "kind" : "vbase_offset"
288    },
289    {
290     "component_value" : 16,
291     "kind" : "vbase_offset"
292    },
293    {
294     "kind" : "offset_to_top"
295    },
296    {
297     "kind" : "rtti",
298     "mangled_component_name" : "_ZTI7Vtable3"
299    },
300    {
301     "kind" : "complete_dtor_pointer",
302     "mangled_component_name" : "_ZN7Vtable3D1Ev"
303    },
304    {
305     "kind" : "deleting_dtor_pointer",
306     "mangled_component_name" : "_ZN7Vtable3D0Ev"
307    },
308    {
309     "mangled_component_name" : "_ZN7Vtable310function_3Ev"
310    },
311    {
312     "mangled_component_name" : "_ZN7Vtable316added_function_3Ev"
313    },
314    {
315     "kind" : "vcall_offset"
316    },
317    {
318     "kind" : "vcall_offset"
319    },
320    {
321     "component_value" : -16,
322     "kind" : "vcall_offset"
323    },
324    {
325     "component_value" : -16,
326     "kind" : "offset_to_top"
327    },
328    {
329     "kind" : "rtti",
330     "mangled_component_name" : "_ZTI7Vtable3"
331    },
332    {
333     "kind" : "complete_dtor_pointer",
334     "mangled_component_name" : "_ZTv0_n24_N7Vtable3D1Ev"
335    },
336    {
337     "kind" : "deleting_dtor_pointer",
338     "mangled_component_name" : "_ZTv0_n24_N7Vtable3D0Ev"
339    },
340    {
341     "is_pure" : true,
342     "mangled_component_name" : "_ZN7Vtable110function_1Ev"
343    },
344    {
345     "is_pure" : true,
346     "mangled_component_name" : "_ZN7Vtable116added_function_1Ev"
347    },
348    {
349     "component_value" : -32,
350     "kind" : "vcall_offset"
351    },
352    {
353     "kind" : "vcall_offset"
354    },
355    {
356     "kind" : "vcall_offset"
357    },
358    {
359     "component_value" : -32,
360     "kind" : "offset_to_top"
361    },
362    {
363     "kind" : "rtti",
364     "mangled_component_name" : "_ZTI7Vtable3"
365    },
366    {
367     "mangled_component_name" : "_ZN7Vtable210function_2Ev"
368    },
369    {
370     "is_pure" : true,
371     "mangled_component_name" : "_ZN7Vtable216added_function_2Ev"
372    },
373    {
374     "kind" : "complete_dtor_pointer",
375     "mangled_component_name" : "_ZTv0_n40_N7Vtable3D1Ev"
376    },
377    {
378     "kind" : "deleting_dtor_pointer",
379     "mangled_component_name" : "_ZTv0_n40_N7Vtable3D0Ev"
380    }
381   ]
382  },
383  {
384   "alignment" : 4,
385   "fields" :
386   [
387    {
388     "field_name" : "nested_member",
389     "referenced_type" : "_ZTIi"
390    },
391    {
392     "field_name" : "added_member",
393     "referenced_type" : "_ZTIA2_i"
394    }
395   ],
396   "linker_set_key" : "_ZTIN7Struct26NestedE",
397   "name" : "Struct2::Nested",
398   "record_kind" : "union",
399   "size" : 8,
400   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/extensions.h"
401  }
402 ],
403 "rvalue_reference_types" : []
404}
405