{
 "array_types" : [],
 "builtin_types" :
 [
  {
   "alignment" : 4,
   "is_integral" : true,
   "linker_set_key" : "_ZTIi",
   "name" : "int",
   "size" : 4
  },
  {
   "alignment" : 2,
   "is_integral" : true,
   "linker_set_key" : "_ZTIs",
   "name" : "short",
   "size" : 2
  },
  {
   "linker_set_key" : "_ZTIv",
   "name" : "void"
  }
 ],
 "elf_functions" :
 [
  {
   "name" : "_Z15PassByReferenceR7Struct1R7Struct2"
  }
 ],
 "elf_objects" : [],
 "enum_types" : [],
 "function_types" : [],
 "functions" :
 [
  {
   "function_name" : "PassByReference",
   "linker_set_key" : "_Z15PassByReferenceR7Struct1R7Struct2",
   "parameters" :
   [
    {
     "referenced_type" : "_ZTIR7Struct1"
    },
    {
     "referenced_type" : "_ZTIR7Struct2"
    }
   ],
   "return_type" : "_ZTIR7Vtable3",
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  }
 ],
 "global_vars" : [],
 "lvalue_reference_types" :
 [
  {
   "alignment" : 8,
   "linker_set_key" : "_ZTIR7Struct1",
   "name" : "Struct1 &",
   "referenced_type" : "_ZTI7Struct1",
   "size" : 8,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  },
  {
   "alignment" : 8,
   "linker_set_key" : "_ZTIR7Struct2",
   "name" : "Struct2 &",
   "referenced_type" : "_ZTI7Struct2",
   "size" : 8,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  },
  {
   "alignment" : 8,
   "linker_set_key" : "_ZTIR7Vtable3",
   "name" : "Vtable3 &",
   "referenced_type" : "_ZTI7Vtable3",
   "size" : 8,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  }
 ],
 "pointer_types" :
 [
  {
   "alignment" : 8,
   "linker_set_key" : "_ZTIP7Vtable1",
   "name" : "Vtable1 *",
   "referenced_type" : "_ZTI7Vtable1",
   "size" : 8,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  },
  {
   "alignment" : 8,
   "linker_set_key" : "_ZTIP7Vtable2",
   "name" : "Vtable2 *",
   "referenced_type" : "_ZTI7Vtable2",
   "size" : 8,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  },
  {
   "alignment" : 8,
   "linker_set_key" : "_ZTIP7Vtable3",
   "name" : "Vtable3 *",
   "referenced_type" : "_ZTI7Vtable3",
   "size" : 8,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  }
 ],
 "qualified_types" : [],
 "record_types" :
 [
  {
   "alignment" : 4,
   "fields" :
   [
    {
     "access" : "protected",
     "field_name" : "offset_0",
     "referenced_type" : "_ZTIs"
    },
    {
     "access" : "protected",
     "field_name" : "offset_32",
     "field_offset" : 32,
     "referenced_type" : "_ZTIi"
    }
   ],
   "linker_set_key" : "_ZTI7Struct1",
   "name" : "Struct1",
   "size" : 8,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  },
  {
   "alignment" : 4,
   "fields" :
   [
    {
     "access" : "protected",
     "field_name" : "member",
     "referenced_type" : "_ZTIN7Struct26NestedE"
    }
   ],
   "linker_set_key" : "_ZTI7Struct2",
   "name" : "Struct2",
   "size" : 4,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  },
  {
   "alignment" : 8,
   "fields" :
   [
    {
     "field_name" : "member_1",
     "field_offset" : 64,
     "referenced_type" : "_ZTIi"
    }
   ],
   "linker_set_key" : "_ZTI7Vtable1",
   "name" : "Vtable1",
   "size" : 16,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h",
   "vtable_components" :
   [
    {
     "kind" : "offset_to_top"
    },
    {
     "kind" : "rtti",
     "mangled_component_name" : "_ZTI7Vtable1"
    },
    {
     "kind" : "complete_dtor_pointer",
     "mangled_component_name" : "_ZN7Vtable1D1Ev"
    },
    {
     "kind" : "deleting_dtor_pointer",
     "mangled_component_name" : "_ZN7Vtable1D0Ev"
    },
    {
     "is_pure" : true,
     "mangled_component_name" : "_ZN7Vtable110function_1Ev"
    }
   ]
  },
  {
   "alignment" : 8,
   "fields" :
   [
    {
     "field_name" : "member_2",
     "field_offset" : 64,
     "referenced_type" : "_ZTIi"
    }
   ],
   "linker_set_key" : "_ZTI7Vtable2",
   "name" : "Vtable2",
   "size" : 16,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h",
   "vtable_components" :
   [
    {
     "kind" : "offset_to_top"
    },
    {
     "kind" : "rtti",
     "mangled_component_name" : "_ZTI7Vtable2"
    },
    {
     "is_pure" : true,
     "mangled_component_name" : "_ZN7Vtable210function_2Ev"
    }
   ]
  },
  {
   "alignment" : 8,
   "base_specifiers" :
   [
    {
     "is_virtual" : true,
     "referenced_type" : "_ZTI7Vtable1"
    },
    {
     "is_virtual" : true,
     "referenced_type" : "_ZTI7Vtable2"
    }
   ],
   "fields" :
   [
    {
     "field_name" : "member_3",
     "field_offset" : 64,
     "referenced_type" : "_ZTIi"
    }
   ],
   "linker_set_key" : "_ZTI7Vtable3",
   "name" : "Vtable3",
   "size" : 48,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h",
   "vtable_components" :
   [
    {
     "component_value" : 32,
     "kind" : "vbase_offset"
    },
    {
     "component_value" : 16,
     "kind" : "vbase_offset"
    },
    {
     "kind" : "offset_to_top"
    },
    {
     "kind" : "rtti",
     "mangled_component_name" : "_ZTI7Vtable3"
    },
    {
     "kind" : "complete_dtor_pointer",
     "mangled_component_name" : "_ZN7Vtable3D1Ev"
    },
    {
     "kind" : "deleting_dtor_pointer",
     "mangled_component_name" : "_ZN7Vtable3D0Ev"
    },
    {
     "mangled_component_name" : "_ZN7Vtable310function_3Ev"
    },
    {
     "kind" : "vcall_offset"
    },
    {
     "component_value" : -16,
     "kind" : "vcall_offset"
    },
    {
     "component_value" : -16,
     "kind" : "offset_to_top"
    },
    {
     "kind" : "rtti",
     "mangled_component_name" : "_ZTI7Vtable3"
    },
    {
     "kind" : "complete_dtor_pointer",
     "mangled_component_name" : "_ZTv0_n24_N7Vtable3D1Ev"
    },
    {
     "kind" : "deleting_dtor_pointer",
     "mangled_component_name" : "_ZTv0_n24_N7Vtable3D0Ev"
    },
    {
     "is_pure" : true,
     "mangled_component_name" : "_ZN7Vtable110function_1Ev"
    },
    {
     "kind" : "vcall_offset"
    },
    {
     "component_value" : -32,
     "kind" : "offset_to_top"
    },
    {
     "kind" : "rtti",
     "mangled_component_name" : "_ZTI7Vtable3"
    },
    {
     "is_pure" : true,
     "mangled_component_name" : "_ZN7Vtable210function_2Ev"
    }
   ]
  },
  {
   "access" : "protected",
   "alignment" : 4,
   "fields" :
   [
    {
     "field_name" : "nested_member",
     "referenced_type" : "_ZTIi"
    }
   ],
   "linker_set_key" : "_ZTIN7Struct26NestedE",
   "name" : "Struct2::Nested",
   "record_kind" : "union",
   "size" : 4,
   "source_file" : "development/vndk/tools/header-checker/tests/integration/struct_extensions/include/base.h"
  }
 ],
 "rvalue_reference_types" : []
}
