Merge "Omit default values in JSON dumps"

am: bed6b4feb9

Change-Id: I4d29a2b576ed9441600ef6e55fc9fd22ac671da8
This commit is contained in:
Hsin-Yi Chen
2018-09-26 04:16:34 -07:00
committed by android-build-merger
8 changed files with 291 additions and 870 deletions

View File

@@ -22,7 +22,7 @@
// message format specific dumpers. // message format specific dumpers.
namespace abi_util { namespace abi_util {
// Classes that wrap constructor of Json::Value. // These classes wrap constructors of Json::Value.
class JsonArray : public Json::Value { class JsonArray : public Json::Value {
public: public:
JsonArray() : Json::Value(Json::ValueType::arrayValue) {} JsonArray() : Json::Value(Json::ValueType::arrayValue) {}
@@ -31,6 +31,33 @@ class JsonArray : public Json::Value {
class JsonObject : public Json::Value { class JsonObject : public Json::Value {
public: public:
JsonObject() : Json::Value(Json::ValueType::objectValue) {} JsonObject() : Json::Value(Json::ValueType::objectValue) {}
// This method inserts the key-value pair if the value is not equal to the
// omissible value.
// Omit false.
void Set(const std::string &key, bool value);
// Omit 0.
void Set(const std::string &key, uint64_t value);
// Omit 0.
void Set(const std::string &key, int64_t value);
// Omit "".
void Set(const std::string &key, const std::string &value);
// Omit [].
void Set(const std::string &key, const JsonArray &value);
private:
template <typename T>
inline void SetOmissible(const std::string &key, T value, T omissible_value) {
if (value != omissible_value) {
(*this)[key] = value;
} else {
removeMember(key);
}
}
}; };
class IRToJsonConverter { class IRToJsonConverter {

View File

@@ -35,6 +35,9 @@ static const std::map<AccessSpecifierIR, std::string> access_ir_to_json{
static const std::map<std::string, AccessSpecifierIR> static const std::map<std::string, AccessSpecifierIR>
access_json_to_ir(CreateInverseMap(access_ir_to_json)); access_json_to_ir(CreateInverseMap(access_ir_to_json));
static const AccessSpecifierIR default_access_ir =
AccessSpecifierIR::PublicAccess;
static const std::map<RecordTypeIR::RecordKind, std::string> static const std::map<RecordTypeIR::RecordKind, std::string>
record_kind_ir_to_json{ record_kind_ir_to_json{
{RecordTypeIR::RecordKind::struct_kind, "struct"}, {RecordTypeIR::RecordKind::struct_kind, "struct"},
@@ -45,6 +48,9 @@ static const std::map<RecordTypeIR::RecordKind, std::string>
static const std::map<std::string, RecordTypeIR::RecordKind> static const std::map<std::string, RecordTypeIR::RecordKind>
record_kind_json_to_ir(CreateInverseMap(record_kind_ir_to_json)); record_kind_json_to_ir(CreateInverseMap(record_kind_ir_to_json));
static const RecordTypeIR::RecordKind default_record_kind_ir =
RecordTypeIR::RecordKind::struct_kind;
static const std::map<VTableComponentIR::Kind, std::string> static const std::map<VTableComponentIR::Kind, std::string>
vtable_component_kind_ir_to_json{ vtable_component_kind_ir_to_json{
{VTableComponentIR::Kind::VCallOffset, "vcall_offset"}, {VTableComponentIR::Kind::VCallOffset, "vcall_offset"},
@@ -61,6 +67,9 @@ static const std::map<std::string, VTableComponentIR::Kind>
vtable_component_kind_json_to_ir( vtable_component_kind_json_to_ir(
CreateInverseMap(vtable_component_kind_ir_to_json)); CreateInverseMap(vtable_component_kind_ir_to_json));
static const VTableComponentIR::Kind default_vtable_component_kind_ir =
VTableComponentIR::Kind::FunctionPointer;
static const std::map<ElfSymbolIR::ElfSymbolBinding, std::string> static const std::map<ElfSymbolIR::ElfSymbolBinding, std::string>
elf_symbol_binding_ir_to_json{ elf_symbol_binding_ir_to_json{
{ElfSymbolIR::ElfSymbolBinding::Weak, "weak"}, {ElfSymbolIR::ElfSymbolBinding::Weak, "weak"},
@@ -71,6 +80,9 @@ static const std::map<std::string, ElfSymbolIR::ElfSymbolBinding>
elf_symbol_binding_json_to_ir( elf_symbol_binding_json_to_ir(
CreateInverseMap(elf_symbol_binding_ir_to_json)); CreateInverseMap(elf_symbol_binding_ir_to_json));
static const ElfSymbolIR::ElfSymbolBinding default_elf_symbol_binding_ir =
ElfSymbolIR::ElfSymbolBinding::Global;
// If m contains k, this function returns the value. // If m contains k, this function returns the value.
// Otherwise, it prints error_msg and exits. // Otherwise, it prints error_msg and exits.
template <typename K, typename V> template <typename K, typename V>
@@ -84,141 +96,155 @@ static inline const V &FindInMap(const std::map<K, V> &m, const K &k,
return it->second; return it->second;
} }
static inline const std::string &AccessIRToJson(AccessSpecifierIR access) { static const JsonObject json_empty_object;
return FindInMap(access_ir_to_json, access, static const JsonArray json_empty_array;
"Failed to convert AccessSpecifierIR to JSON"); static const Json::Value json_0(0);
static const Json::Value json_false(false);
static const Json::Value json_empty_string("");
void JsonObject::Set(const std::string &key, bool value) {
SetOmissible(key, value, false);
} }
static inline AccessSpecifierIR AccessJsonToIR(const std::string &access) { void JsonObject::Set(const std::string &key, uint64_t value) {
return FindInMap(access_json_to_ir, access, SetOmissible<Json::UInt64>(key, value, 0);
"Failed to convert JSON to AccessSpecifierIR");
} }
static inline const std::string & void JsonObject::Set(const std::string &key, int64_t value) {
RecordKindIRToJson(RecordTypeIR::RecordKind kind) { SetOmissible<Json::Int64>(key, value, 0);
return FindInMap(record_kind_ir_to_json, kind,
"Failed to convert RecordKind to JSON");
} }
static inline RecordTypeIR::RecordKind void JsonObject::Set(const std::string &key, const std::string &value) {
RecordKindJsonToIR(const std::string &kind) { SetOmissible<const std::string &>(key, value, "");
return FindInMap(record_kind_json_to_ir, kind,
"Failed to convert JSON to RecordKind");
} }
static inline const std::string & void JsonObject::Set(const std::string &key, const JsonArray &value) {
VTableComponentKindIRToJson(VTableComponentIR::Kind kind) { SetOmissible(key, value, json_empty_array);
return FindInMap(vtable_component_kind_ir_to_json, kind,
"Failed to convert VTableComponentIR::Kind to JSON");
} }
static inline VTableComponentIR::Kind static void AddAccess(JsonObject &type_decl, AccessSpecifierIR value) {
VTableComponentKindJsonToIR(const std::string &kind) { if (value != default_access_ir) {
return FindInMap(vtable_component_kind_json_to_ir, kind, type_decl.Set("access",
"Failed to convert JSON to VTableComponentIR::Kind"); FindInMap(access_ir_to_json, value,
"Failed to convert AccessSpecifierIR to JSON"));
}
} }
static inline const std::string & static void AddRecordKind(JsonObject &record_type,
ElfSymbolBindingIRToJson(ElfSymbolIR::ElfSymbolBinding binding) { RecordTypeIR::RecordKind value) {
return FindInMap(elf_symbol_binding_ir_to_json, binding, if (value != default_record_kind_ir) {
"Failed to convert ElfSymbolBinding to JSON"); record_type.Set("record_kind",
FindInMap(record_kind_ir_to_json, value,
"Failed to convert RecordKind to JSON"));
}
} }
static inline ElfSymbolIR::ElfSymbolBinding static void AddVtableComponentKind(JsonObject &vtable_component,
ElfSymbolBindingJsonToIR(const std::string &binding) { VTableComponentIR::Kind value) {
return FindInMap(elf_symbol_binding_json_to_ir, binding, if (value != default_vtable_component_kind_ir) {
"Failed to convert JSON to ElfSymbolBinding"); vtable_component.Set(
"kind", FindInMap(vtable_component_kind_ir_to_json, value,
"Failed to convert VTableComponentIR::Kind to JSON"));
}
}
static void AddElfSymbolBinding(JsonObject &elf_symbol,
ElfSymbolIR::ElfSymbolBinding value) {
if (value != default_elf_symbol_binding_ir) {
elf_symbol.Set("binding",
FindInMap(elf_symbol_binding_ir_to_json, value,
"Failed to convert ElfSymbolBinding to JSON"));
}
} }
void IRToJsonConverter::AddTemplateInfo( void IRToJsonConverter::AddTemplateInfo(
JsonObject &type_decl, const TemplatedArtifactIR *template_ir) { JsonObject &type_decl, const TemplatedArtifactIR *template_ir) {
Json::Value &args = type_decl["template_args"]; JsonArray args;
args = JsonArray();
for (auto &&template_element_ir : template_ir->GetTemplateElements()) { for (auto &&template_element_ir : template_ir->GetTemplateElements()) {
args.append(template_element_ir.GetReferencedType()); args.append(template_element_ir.GetReferencedType());
} }
type_decl.Set("template_args", args);
} }
void IRToJsonConverter::AddTypeInfo(JsonObject &type_decl, void IRToJsonConverter::AddTypeInfo(JsonObject &type_decl,
const TypeIR *type_ir) { const TypeIR *type_ir) {
type_decl["linker_set_key"] = type_ir->GetLinkerSetKey(); type_decl.Set("linker_set_key", type_ir->GetLinkerSetKey());
type_decl["source_file"] = type_ir->GetSourceFile(); type_decl.Set("source_file", type_ir->GetSourceFile());
type_decl["name"] = type_ir->GetName(); type_decl.Set("name", type_ir->GetName());
type_decl["size"] = Json::UInt64(type_ir->GetSize()); type_decl.Set("size", (uint64_t)type_ir->GetSize());
type_decl["alignment"] = type_ir->GetAlignment(); type_decl.Set("alignment", (uint64_t)type_ir->GetAlignment());
type_decl["referenced_type"] = type_ir->GetReferencedType(); type_decl.Set("referenced_type", type_ir->GetReferencedType());
type_decl["self_type"] = type_ir->GetSelfType(); type_decl.Set("self_type", type_ir->GetSelfType());
} }
static JsonObject ConvertRecordFieldIR(const RecordFieldIR *record_field_ir) { static JsonObject ConvertRecordFieldIR(const RecordFieldIR *record_field_ir) {
JsonObject record_field; JsonObject record_field;
record_field["field_name"] = record_field_ir->GetName(); record_field.Set("field_name", record_field_ir->GetName());
record_field["referenced_type"] = record_field_ir->GetReferencedType(); record_field.Set("referenced_type", record_field_ir->GetReferencedType());
record_field["access"] = AccessIRToJson(record_field_ir->GetAccess()); AddAccess(record_field, record_field_ir->GetAccess());
record_field["field_offset"] = Json::UInt64(record_field_ir->GetOffset()); record_field.Set("field_offset", (uint64_t)record_field_ir->GetOffset());
return record_field; return record_field;
} }
void IRToJsonConverter::AddRecordFields(JsonObject &record_type, void IRToJsonConverter::AddRecordFields(JsonObject &record_type,
const RecordTypeIR *record_ir) { const RecordTypeIR *record_ir) {
Json::Value &fields = record_type["fields"]; JsonArray fields;
fields = JsonArray();
for (auto &&field_ir : record_ir->GetFields()) { for (auto &&field_ir : record_ir->GetFields()) {
fields.append(ConvertRecordFieldIR(&field_ir)); fields.append(ConvertRecordFieldIR(&field_ir));
} }
record_type.Set("fields", fields);
} }
static JsonObject static JsonObject
ConvertBaseSpecifierIR(const CXXBaseSpecifierIR &base_specifier_ir) { ConvertBaseSpecifierIR(const CXXBaseSpecifierIR &base_specifier_ir) {
JsonObject base_specifier; JsonObject base_specifier;
base_specifier["referenced_type"] = base_specifier_ir.GetReferencedType(); base_specifier.Set("referenced_type", base_specifier_ir.GetReferencedType());
base_specifier["is_virtual"] = base_specifier_ir.IsVirtual(); base_specifier.Set("is_virtual", base_specifier_ir.IsVirtual());
base_specifier["access"] = AccessIRToJson(base_specifier_ir.GetAccess()); AddAccess(base_specifier, base_specifier_ir.GetAccess());
return base_specifier; return base_specifier;
} }
void IRToJsonConverter::AddBaseSpecifiers(JsonObject &record_type, void IRToJsonConverter::AddBaseSpecifiers(JsonObject &record_type,
const RecordTypeIR *record_ir) { const RecordTypeIR *record_ir) {
Json::Value &base_specifiers = record_type["base_specifiers"]; JsonArray base_specifiers;
base_specifiers = JsonArray();
for (auto &&base_ir : record_ir->GetBases()) { for (auto &&base_ir : record_ir->GetBases()) {
base_specifiers.append(ConvertBaseSpecifierIR(base_ir)); base_specifiers.append(ConvertBaseSpecifierIR(base_ir));
} }
record_type.Set("base_specifiers", base_specifiers);
} }
static JsonObject static JsonObject
ConvertVTableComponentIR(const VTableComponentIR &vtable_component_ir) { ConvertVTableComponentIR(const VTableComponentIR &vtable_component_ir) {
JsonObject vtable_component; JsonObject vtable_component;
vtable_component["kind"] = AddVtableComponentKind(vtable_component, vtable_component_ir.GetKind());
VTableComponentKindIRToJson(vtable_component_ir.GetKind()); vtable_component.Set("component_value",
vtable_component["component_value"] = (int64_t)vtable_component_ir.GetValue());
Json::Int64(vtable_component_ir.GetValue()); vtable_component.Set("mangled_component_name", vtable_component_ir.GetName());
vtable_component["mangled_component_name"] = vtable_component_ir.GetName(); vtable_component.Set("is_pure", vtable_component_ir.GetIsPure());
vtable_component["is_pure"] = vtable_component_ir.GetIsPure();
return vtable_component; return vtable_component;
} }
void IRToJsonConverter::AddVTableLayout(JsonObject &record_type, void IRToJsonConverter::AddVTableLayout(JsonObject &record_type,
const RecordTypeIR *record_ir) { const RecordTypeIR *record_ir) {
Json::Value &vtable_components = record_type["vtable_components"]; JsonArray vtable_components;
vtable_components = JsonArray();
for (auto &&vtable_component_ir : for (auto &&vtable_component_ir :
record_ir->GetVTableLayout().GetVTableComponents()) { record_ir->GetVTableLayout().GetVTableComponents()) {
vtable_components.append(ConvertVTableComponentIR(vtable_component_ir)); vtable_components.append(ConvertVTableComponentIR(vtable_component_ir));
} }
record_type.Set("vtable_components", vtable_components);
} }
void IRToJsonConverter::AddTagTypeInfo(JsonObject &type_decl, void IRToJsonConverter::AddTagTypeInfo(JsonObject &type_decl,
const TagTypeIR *tag_type_ir) { const TagTypeIR *tag_type_ir) {
type_decl["unique_id"] = tag_type_ir->GetUniqueId(); type_decl.Set("unique_id", tag_type_ir->GetUniqueId());
} }
JsonObject IRToJsonConverter::ConvertRecordTypeIR(const RecordTypeIR *recordp) { JsonObject IRToJsonConverter::ConvertRecordTypeIR(const RecordTypeIR *recordp) {
JsonObject record_type; JsonObject record_type;
record_type["access"] = AccessIRToJson(recordp->GetAccess()); AddAccess(record_type, recordp->GetAccess());
record_type["record_kind"] = RecordKindIRToJson(recordp->GetRecordKind()); AddRecordKind(record_type, recordp->GetRecordKind());
record_type["is_anonymous"] = recordp->IsAnonymous(); record_type.Set("is_anonymous", recordp->IsAnonymous());
AddTypeInfo(record_type, recordp); AddTypeInfo(record_type, recordp);
AddRecordFields(record_type, recordp); AddRecordFields(record_type, recordp);
AddBaseSpecifiers(record_type, recordp); AddBaseSpecifiers(record_type, recordp);
@@ -230,20 +256,21 @@ JsonObject IRToJsonConverter::ConvertRecordTypeIR(const RecordTypeIR *recordp) {
void IRToJsonConverter::AddFunctionParametersAndSetReturnType( void IRToJsonConverter::AddFunctionParametersAndSetReturnType(
JsonObject &function, const CFunctionLikeIR *cfunction_like_ir) { JsonObject &function, const CFunctionLikeIR *cfunction_like_ir) {
function["return_type"] = cfunction_like_ir->GetReturnType(); function.Set("return_type", cfunction_like_ir->GetReturnType());
AddFunctionParameters(function, cfunction_like_ir); AddFunctionParameters(function, cfunction_like_ir);
} }
void IRToJsonConverter::AddFunctionParameters( void IRToJsonConverter::AddFunctionParameters(
JsonObject &function, const CFunctionLikeIR *cfunction_like_ir) { JsonObject &function, const CFunctionLikeIR *cfunction_like_ir) {
Json::Value &parameters = function["parameters"]; JsonArray parameters;
parameters = JsonArray();
for (auto &&parameter_ir : cfunction_like_ir->GetParameters()) { for (auto &&parameter_ir : cfunction_like_ir->GetParameters()) {
Json::Value &parameter = parameters.append(JsonObject()); JsonObject parameter;
parameter["referenced_type"] = parameter_ir.GetReferencedType(); parameter.Set("referenced_type", parameter_ir.GetReferencedType());
parameter["default_arg"] = parameter_ir.GetIsDefault(); parameter.Set("default_arg", parameter_ir.GetIsDefault());
parameter["is_this_ptr"] = parameter_ir.GetIsThisPtr(); parameter.Set("is_this_ptr", parameter_ir.GetIsThisPtr());
parameters.append(parameter);
} }
function.Set("parameters", parameters);
} }
JsonObject JsonObject
@@ -256,10 +283,10 @@ IRToJsonConverter::ConvertFunctionTypeIR(const FunctionTypeIR *function_typep) {
JsonObject IRToJsonConverter::ConvertFunctionIR(const FunctionIR *functionp) { JsonObject IRToJsonConverter::ConvertFunctionIR(const FunctionIR *functionp) {
JsonObject function; JsonObject function;
function["access"] = AccessIRToJson(functionp->GetAccess()); AddAccess(function, functionp->GetAccess());
function["linker_set_key"] = functionp->GetLinkerSetKey(); function.Set("linker_set_key", functionp->GetLinkerSetKey());
function["source_file"] = functionp->GetSourceFile(); function.Set("source_file", functionp->GetSourceFile());
function["function_name"] = functionp->GetName(); function.Set("function_name", functionp->GetName());
AddFunctionParametersAndSetReturnType(function, functionp); AddFunctionParametersAndSetReturnType(function, functionp);
AddTemplateInfo(function, functionp); AddTemplateInfo(function, functionp);
return function; return function;
@@ -267,24 +294,24 @@ JsonObject IRToJsonConverter::ConvertFunctionIR(const FunctionIR *functionp) {
static JsonObject ConvertEnumFieldIR(const EnumFieldIR *enum_field_ir) { static JsonObject ConvertEnumFieldIR(const EnumFieldIR *enum_field_ir) {
JsonObject enum_field; JsonObject enum_field;
enum_field["name"] = enum_field_ir->GetName(); enum_field.Set("name", enum_field_ir->GetName());
enum_field["enum_field_value"] = Json::Int64(enum_field_ir->GetValue()); enum_field.Set("enum_field_value", (int64_t)enum_field_ir->GetValue());
return enum_field; return enum_field;
} }
void IRToJsonConverter::AddEnumFields(JsonObject &enum_type, void IRToJsonConverter::AddEnumFields(JsonObject &enum_type,
const EnumTypeIR *enum_ir) { const EnumTypeIR *enum_ir) {
Json::Value &enum_fields = enum_type["enum_fields"]; JsonArray enum_fields;
enum_fields = JsonArray();
for (auto &&field : enum_ir->GetFields()) { for (auto &&field : enum_ir->GetFields()) {
enum_fields.append(ConvertEnumFieldIR(&field)); enum_fields.append(ConvertEnumFieldIR(&field));
} }
enum_type.Set("enum_fields", enum_fields);
} }
JsonObject IRToJsonConverter::ConvertEnumTypeIR(const EnumTypeIR *enump) { JsonObject IRToJsonConverter::ConvertEnumTypeIR(const EnumTypeIR *enump) {
JsonObject enum_type; JsonObject enum_type;
enum_type["access"] = AccessIRToJson(enump->GetAccess()); AddAccess(enum_type, enump->GetAccess());
enum_type["underlying_type"] = enump->GetUnderlyingType(); enum_type.Set("underlying_type", enump->GetUnderlyingType());
AddTypeInfo(enum_type, enump); AddTypeInfo(enum_type, enump);
AddEnumFields(enum_type, enump); AddEnumFields(enum_type, enump);
AddTagTypeInfo(enum_type, enump); AddTagTypeInfo(enum_type, enump);
@@ -294,11 +321,11 @@ JsonObject IRToJsonConverter::ConvertEnumTypeIR(const EnumTypeIR *enump) {
JsonObject JsonObject
IRToJsonConverter::ConvertGlobalVarIR(const GlobalVarIR *global_varp) { IRToJsonConverter::ConvertGlobalVarIR(const GlobalVarIR *global_varp) {
JsonObject global_var; JsonObject global_var;
global_var["referenced_type"] = global_varp->GetReferencedType(); global_var.Set("referenced_type", global_varp->GetReferencedType());
global_var["source_file"] = global_varp->GetSourceFile(); global_var.Set("source_file", global_varp->GetSourceFile());
global_var["name"] = global_varp->GetName(); global_var.Set("name", global_varp->GetName());
global_var["linker_set_key"] = global_varp->GetLinkerSetKey(); global_var.Set("linker_set_key", global_varp->GetLinkerSetKey());
global_var["access"] = AccessIRToJson(global_varp->GetAccess()); AddAccess(global_var, global_varp->GetAccess());
return global_var; return global_var;
} }
@@ -313,17 +340,17 @@ JsonObject
IRToJsonConverter::ConvertQualifiedTypeIR(const QualifiedTypeIR *qualtypep) { IRToJsonConverter::ConvertQualifiedTypeIR(const QualifiedTypeIR *qualtypep) {
JsonObject qualified_type; JsonObject qualified_type;
AddTypeInfo(qualified_type, qualtypep); AddTypeInfo(qualified_type, qualtypep);
qualified_type["is_const"] = qualtypep->IsConst(); qualified_type.Set("is_const", qualtypep->IsConst());
qualified_type["is_volatile"] = qualtypep->IsVolatile(); qualified_type.Set("is_volatile", qualtypep->IsVolatile());
qualified_type["is_restricted"] = qualtypep->IsRestricted(); qualified_type.Set("is_restricted", qualtypep->IsRestricted());
return qualified_type; return qualified_type;
} }
JsonObject JsonObject
IRToJsonConverter::ConvertBuiltinTypeIR(const BuiltinTypeIR *builtin_typep) { IRToJsonConverter::ConvertBuiltinTypeIR(const BuiltinTypeIR *builtin_typep) {
JsonObject builtin_type; JsonObject builtin_type;
builtin_type["is_unsigned"] = builtin_typep->IsUnsigned(); builtin_type.Set("is_unsigned", builtin_typep->IsUnsigned());
builtin_type["is_integral"] = builtin_typep->IsIntegralType(); builtin_type.Set("is_integral", builtin_typep->IsIntegralType());
AddTypeInfo(builtin_type, builtin_typep); AddTypeInfo(builtin_type, builtin_typep);
return builtin_type; return builtin_type;
} }
@@ -420,10 +447,10 @@ bool JsonIRDumper::AddElfSymbolMessageIR(const ElfSymbolIR *elf_symbol_ir) {
default: default:
return false; return false;
} }
Json::Value &elf_symbol = translation_unit_[key].append(JsonObject()); JsonObject elf_symbol;
elf_symbol["name"] = elf_symbol_ir->GetName(); elf_symbol.Set("name", elf_symbol_ir->GetName());
elf_symbol["binding"] = AddElfSymbolBinding(elf_symbol, elf_symbol_ir->GetBinding());
ElfSymbolBindingIRToJson(elf_symbol_ir->GetBinding()); translation_unit_[key].append(elf_symbol);
return true; return true;
} }
@@ -486,12 +513,6 @@ JsonIRDumper::JsonIRDumper(const std::string &dump_path)
} }
} }
static const JsonObject json_empty_object;
static const JsonArray json_empty_array;
static const Json::Value json_0(0);
static const Json::Value json_false(false);
static const Json::Value json_empty_string("");
JsonObjectRef::JsonObjectRef(const Json::Value &json_value, bool &ok) JsonObjectRef::JsonObjectRef(const Json::Value &json_value, bool &ok)
: object_(json_value.isObject() ? json_value : json_empty_object), ok_(ok) { : object_(json_value.isObject() ? json_value : json_empty_object), ok_(ok) {
if (!json_value.isObject()) { if (!json_value.isObject()) {
@@ -555,6 +576,45 @@ template <> std::string JsonArrayRef<std::string>::Iterator::operator*() const {
return array_[index_].asString(); return array_[index_].asString();
} }
static AccessSpecifierIR GetAccess(const JsonObjectRef &type_decl) {
std::string access(type_decl.GetString("access"));
if (access.empty()) {
return default_access_ir;
}
return FindInMap(access_json_to_ir, access,
"Failed to convert JSON to AccessSpecifierIR");
}
static RecordTypeIR::RecordKind
GetRecordKind(const JsonObjectRef &record_type) {
std::string kind(record_type.GetString("record_kind"));
if (kind.empty()) {
return default_record_kind_ir;
}
return FindInMap(record_kind_json_to_ir, kind,
"Failed to convert JSON to RecordKind");
}
static VTableComponentIR::Kind
GetVTableComponentKind(const JsonObjectRef &vtable_component) {
std::string kind(vtable_component.GetString("kind"));
if (kind.empty()) {
return default_vtable_component_kind_ir;
}
return FindInMap(vtable_component_kind_json_to_ir, kind,
"Failed to convert JSON to VTableComponentIR::Kind");
}
static ElfSymbolIR::ElfSymbolBinding
GetElfSymbolBinding(const JsonObjectRef &elf_symbol) {
std::string binding(elf_symbol.GetString("binding"));
if (binding.empty()) {
return default_elf_symbol_binding_ir;
}
return FindInMap(elf_symbol_binding_json_to_ir, binding,
"Failed to convert JSON to ElfSymbolBinding");
}
bool JsonToIRReader::ReadDump(const std::string &dump_file) { bool JsonToIRReader::ReadDump(const std::string &dump_file) {
Json::Value tu_json; Json::Value tu_json;
Json::Reader reader; Json::Reader reader;
@@ -621,10 +681,9 @@ void JsonToIRReader::ReadTypeInfo(const JsonObjectRef &type_decl,
void JsonToIRReader::ReadRecordFields(const JsonObjectRef &record_type, void JsonToIRReader::ReadRecordFields(const JsonObjectRef &record_type,
RecordTypeIR *record_ir) { RecordTypeIR *record_ir) {
for (auto &&field : record_type.GetObjects("fields")) { for (auto &&field : record_type.GetObjects("fields")) {
RecordFieldIR record_field_ir(field.GetString("field_name"), RecordFieldIR record_field_ir(
field.GetString("referenced_type"), field.GetString("field_name"), field.GetString("referenced_type"),
field.GetUint("field_offset"), field.GetUint("field_offset"), GetAccess(field));
AccessJsonToIR(field.GetString("access")));
record_ir->AddRecordField(std::move(record_field_ir)); record_ir->AddRecordField(std::move(record_field_ir));
} }
} }
@@ -634,8 +693,7 @@ void JsonToIRReader::ReadBaseSpecifiers(const JsonObjectRef &record_type,
for (auto &&base_specifier : record_type.GetObjects("base_specifiers")) { for (auto &&base_specifier : record_type.GetObjects("base_specifiers")) {
CXXBaseSpecifierIR record_base_ir( CXXBaseSpecifierIR record_base_ir(
base_specifier.GetString("referenced_type"), base_specifier.GetString("referenced_type"),
base_specifier.GetBool("is_virtual"), base_specifier.GetBool("is_virtual"), GetAccess(base_specifier));
AccessJsonToIR(base_specifier.GetString("access")));
record_ir->AddCXXBaseSpecifier(std::move(record_base_ir)); record_ir->AddCXXBaseSpecifier(std::move(record_base_ir));
} }
} }
@@ -646,7 +704,7 @@ void JsonToIRReader::ReadVTableLayout(const JsonObjectRef &record_type,
for (auto &&vtable_component : record_type.GetObjects("vtable_components")) { for (auto &&vtable_component : record_type.GetObjects("vtable_components")) {
VTableComponentIR vtable_component_ir( VTableComponentIR vtable_component_ir(
vtable_component.GetString("mangled_component_name"), vtable_component.GetString("mangled_component_name"),
VTableComponentKindJsonToIR(vtable_component.GetString("kind")), GetVTableComponentKind(vtable_component),
vtable_component.GetInt("component_value"), vtable_component.GetInt("component_value"),
vtable_component.GetBool("is_pure")); vtable_component.GetBool("is_pure"));
vtable_layout_ir.AddVTableComponent(std::move(vtable_component_ir)); vtable_layout_ir.AddVTableComponent(std::move(vtable_component_ir));
@@ -678,7 +736,7 @@ FunctionIR JsonToIRReader::FunctionJsonToIR(const JsonObjectRef &function) {
FunctionIR function_ir; FunctionIR function_ir;
function_ir.SetLinkerSetKey(function.GetString("linker_set_key")); function_ir.SetLinkerSetKey(function.GetString("linker_set_key"));
function_ir.SetName(function.GetString("function_name")); function_ir.SetName(function.GetString("function_name"));
function_ir.SetAccess(AccessJsonToIR(function.GetString("access"))); function_ir.SetAccess(GetAccess(function));
function_ir.SetSourceFile(function.GetString("source_file")); function_ir.SetSourceFile(function.GetString("source_file"));
ReadFunctionParametersAndReturnType(function, &function_ir); ReadFunctionParametersAndReturnType(function, &function_ir);
ReadTemplateInfo(function, &function_ir); ReadTemplateInfo(function, &function_ir);
@@ -698,12 +756,11 @@ JsonToIRReader::RecordTypeJsonToIR(const JsonObjectRef &record_type) {
RecordTypeIR record_type_ir; RecordTypeIR record_type_ir;
ReadTypeInfo(record_type, &record_type_ir); ReadTypeInfo(record_type, &record_type_ir);
ReadTemplateInfo(record_type, &record_type_ir); ReadTemplateInfo(record_type, &record_type_ir);
record_type_ir.SetAccess(AccessJsonToIR(record_type.GetString("access"))); record_type_ir.SetAccess(GetAccess(record_type));
ReadVTableLayout(record_type, &record_type_ir); ReadVTableLayout(record_type, &record_type_ir);
ReadRecordFields(record_type, &record_type_ir); ReadRecordFields(record_type, &record_type_ir);
ReadBaseSpecifiers(record_type, &record_type_ir); ReadBaseSpecifiers(record_type, &record_type_ir);
record_type_ir.SetRecordKind( record_type_ir.SetRecordKind(GetRecordKind(record_type));
RecordKindJsonToIR(record_type.GetString("record_kind")));
record_type_ir.SetAnonymity(record_type.GetBool("is_anonymous")); record_type_ir.SetAnonymity(record_type.GetBool("is_anonymous"));
ReadTagTypeInfo(record_type, &record_type_ir); ReadTagTypeInfo(record_type, &record_type_ir);
return record_type_ir; return record_type_ir;
@@ -713,7 +770,7 @@ EnumTypeIR JsonToIRReader::EnumTypeJsonToIR(const JsonObjectRef &enum_type) {
EnumTypeIR enum_type_ir; EnumTypeIR enum_type_ir;
ReadTypeInfo(enum_type, &enum_type_ir); ReadTypeInfo(enum_type, &enum_type_ir);
enum_type_ir.SetUnderlyingType(enum_type.GetString("underlying_type")); enum_type_ir.SetUnderlyingType(enum_type.GetString("underlying_type"));
enum_type_ir.SetAccess(AccessJsonToIR(enum_type.GetString("access"))); enum_type_ir.SetAccess(GetAccess(enum_type));
ReadEnumFields(enum_type, &enum_type_ir); ReadEnumFields(enum_type, &enum_type_ir);
ReadTagTypeInfo(enum_type, &enum_type_ir); ReadTagTypeInfo(enum_type, &enum_type_ir);
return enum_type_ir; return enum_type_ir;
@@ -723,8 +780,7 @@ void JsonToIRReader::ReadGlobalVariables(const JsonObjectRef &tu) {
for (auto &&global_variable : tu.GetObjects("global_vars")) { for (auto &&global_variable : tu.GetObjects("global_vars")) {
GlobalVarIR global_variable_ir; GlobalVarIR global_variable_ir;
global_variable_ir.SetName(global_variable.GetString("name")); global_variable_ir.SetName(global_variable.GetString("name"));
global_variable_ir.SetAccess( global_variable_ir.SetAccess(GetAccess(global_variable));
AccessJsonToIR(global_variable.GetString("access")));
global_variable_ir.SetSourceFile(global_variable.GetString("source_file")); global_variable_ir.SetSourceFile(global_variable.GetString("source_file"));
global_variable_ir.SetReferencedType( global_variable_ir.SetReferencedType(
global_variable.GetString("referenced_type")); global_variable.GetString("referenced_type"));
@@ -863,9 +919,8 @@ void JsonToIRReader::ReadEnumTypes(const JsonObjectRef &tu) {
void JsonToIRReader::ReadElfFunctions(const JsonObjectRef &tu) { void JsonToIRReader::ReadElfFunctions(const JsonObjectRef &tu) {
for (auto &&elf_function : tu.GetObjects("elf_functions")) { for (auto &&elf_function : tu.GetObjects("elf_functions")) {
ElfFunctionIR elf_function_ir( ElfFunctionIR elf_function_ir(elf_function.GetString("name"),
elf_function.GetString("name"), GetElfSymbolBinding(elf_function));
ElfSymbolBindingJsonToIR(elf_function.GetString("binding")));
elf_functions_.insert( elf_functions_.insert(
{elf_function_ir.GetName(), std::move(elf_function_ir)}); {elf_function_ir.GetName(), std::move(elf_function_ir)});
} }
@@ -873,9 +928,8 @@ void JsonToIRReader::ReadElfFunctions(const JsonObjectRef &tu) {
void JsonToIRReader::ReadElfObjects(const JsonObjectRef &tu) { void JsonToIRReader::ReadElfObjects(const JsonObjectRef &tu) {
for (auto &&elf_object : tu.GetObjects("elf_objects")) { for (auto &&elf_object : tu.GetObjects("elf_objects")) {
ElfObjectIR elf_object_ir( ElfObjectIR elf_object_ir(elf_object.GetString("name"),
elf_object.GetString("name"), GetElfSymbolBinding(elf_object));
ElfSymbolBindingJsonToIR(elf_object.GetString("binding")));
elf_objects_.insert({elf_object_ir.GetName(), std::move(elf_object_ir)}); elf_objects_.insert({elf_object_ir.GetName(), std::move(elf_object_ir)});
} }
} }

View File

@@ -4,25 +4,20 @@
[ [
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "float", "linker_set_key" : "float",
"name" : "float", "name" : "float",
"referenced_type" : "type-3", "referenced_type" : "type-3",
"self_type" : "type-3", "self_type" : "type-3",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : true, "is_integral" : true,
"is_unsigned" : false,
"linker_set_key" : "int", "linker_set_key" : "int",
"name" : "int", "name" : "int",
"referenced_type" : "type-2", "referenced_type" : "type-2",
"self_type" : "type-2", "self_type" : "type-2",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
@@ -32,72 +27,54 @@
"name" : "unsigned int", "name" : "unsigned int",
"referenced_type" : "type-6", "referenced_type" : "type-6",
"self_type" : "type-6", "self_type" : "type-6",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 0,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "void", "linker_set_key" : "void",
"name" : "void", "name" : "void",
"referenced_type" : "type-10", "referenced_type" : "type-10",
"self_type" : "type-10", "self_type" : "type-10"
"size" : 0,
"source_file" : ""
} }
], ],
"elf_functions" : "elf_functions" :
[ [
{ {
"binding" : "global",
"name" : "_Z26test_virtual_function_callP12SuperSpeaker" "name" : "_Z26test_virtual_function_callP12SuperSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZN12NotReferenced" "name" : "_ZN12NotReferenced"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker11SpeakLouderEv" "name" : "_ZN12SuperSpeaker11SpeakLouderEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi" "name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker9SpeakLoudEv" "name" : "_ZN12SuperSpeaker9SpeakLoudEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker5SpeakEv" "name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker6ListenEv" "name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf" "name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker5SpeakEv" "name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker6ListenEv" "name" : "_ZN17HighVolumeSpeaker6ListenEv"
} }
], ],
"elf_objects" : "elf_objects" :
[ [
{ {
"binding" : "global",
"name" : "_ZTV16LowVolumeSpeaker" "name" : "_ZTV16LowVolumeSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZTV17HighVolumeSpeaker" "name" : "_ZTV17HighVolumeSpeaker"
} }
], ],
@@ -139,137 +116,110 @@
"functions" : "functions" :
[ [
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLouder", "function_name" : "SuperSpeaker::SpeakLouder",
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv", "linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::CreateSuperSpeaker", "function_name" : "SuperSpeaker::CreateSuperSpeaker",
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi", "linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"return_type" : "type-9", "return_type" : "type-9",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLoud", "function_name" : "SuperSpeaker::SpeakLoud",
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv", "linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-8", "return_type" : "type-8",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Speak", "function_name" : "LowVolumeSpeaker::Speak",
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Listen", "function_name" : "LowVolumeSpeaker::Listen",
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::BadPractice", "function_name" : "HighVolumeSpeaker::BadPractice",
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf", "linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
}, },
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-3" "referenced_type" : "type-3"
} }
], ],
"return_type" : "type-12", "return_type" : "type-12",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Speak", "function_name" : "HighVolumeSpeaker::Speak",
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Listen", "function_name" : "HighVolumeSpeaker::Listen",
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
} }
], ],
"global_vars" : [], "global_vars" : [],
@@ -317,9 +267,7 @@
"record_types" : "record_types" :
[ [
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : [],
"fields" : "fields" :
[ [
{ {
@@ -329,7 +277,6 @@
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "SuperSpeaker", "linker_set_key" : "SuperSpeaker",
"name" : "SuperSpeaker", "name" : "SuperSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -337,61 +284,42 @@
"self_type" : "type-1", "self_type" : "type-1",
"size" : 8, "size" : 8,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
"template_args" : [],
"unique_id" : "_ZTS12SuperSpeaker", "unique_id" : "_ZTS12SuperSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI12SuperSpeaker" "mangled_component_name" : "_ZTI12SuperSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv" "mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv" "mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev" "mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev" "mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : [],
"is_anonymous" : false,
"linker_set_key" : "HighVolumeSpeaker", "linker_set_key" : "HighVolumeSpeaker",
"name" : "HighVolumeSpeaker", "name" : "HighVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -399,75 +327,53 @@
"self_type" : "type-11", "self_type" : "type-11",
"size" : 8, "size" : 8,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS17HighVolumeSpeaker", "unique_id" : "_ZTS17HighVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI17HighVolumeSpeaker" "mangled_component_name" : "_ZTI17HighVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : "fields" :
[ [
{ {
"access" : "public",
"field_name" : "speaker_uint_t", "field_name" : "speaker_uint_t",
"field_offset" : 64, "field_offset" : 64,
"referenced_type" : "type-6" "referenced_type" : "type-6"
}, },
{ {
"access" : "public",
"field_name" : "speaker_float_star", "field_name" : "speaker_float_star",
"field_offset" : 96, "field_offset" : 96,
"referenced_type" : "type-7" "referenced_type" : "type-7"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "LowVolumeSpeaker", "linker_set_key" : "LowVolumeSpeaker",
"name" : "LowVolumeSpeaker", "name" : "LowVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -475,43 +381,27 @@
"self_type" : "type-5", "self_type" : "type-5",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS16LowVolumeSpeaker", "unique_id" : "_ZTS16LowVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI16LowVolumeSpeaker" "mangled_component_name" : "_ZTI16LowVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
} }

View File

@@ -4,25 +4,20 @@
[ [
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "float", "linker_set_key" : "float",
"name" : "float", "name" : "float",
"referenced_type" : "type-3", "referenced_type" : "type-3",
"self_type" : "type-3", "self_type" : "type-3",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : true, "is_integral" : true,
"is_unsigned" : false,
"linker_set_key" : "int", "linker_set_key" : "int",
"name" : "int", "name" : "int",
"referenced_type" : "type-2", "referenced_type" : "type-2",
"self_type" : "type-2", "self_type" : "type-2",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
@@ -32,72 +27,54 @@
"name" : "unsigned int", "name" : "unsigned int",
"referenced_type" : "type-6", "referenced_type" : "type-6",
"self_type" : "type-6", "self_type" : "type-6",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 0,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "void", "linker_set_key" : "void",
"name" : "void", "name" : "void",
"referenced_type" : "type-10", "referenced_type" : "type-10",
"self_type" : "type-10", "self_type" : "type-10"
"size" : 0,
"source_file" : ""
} }
], ],
"elf_functions" : "elf_functions" :
[ [
{ {
"binding" : "global",
"name" : "_Z26test_virtual_function_callP12SuperSpeaker" "name" : "_Z26test_virtual_function_callP12SuperSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZN12NotReferenced" "name" : "_ZN12NotReferenced"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker11SpeakLouderEv" "name" : "_ZN12SuperSpeaker11SpeakLouderEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi" "name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker9SpeakLoudEv" "name" : "_ZN12SuperSpeaker9SpeakLoudEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker5SpeakEv" "name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker6ListenEv" "name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf" "name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker5SpeakEv" "name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker6ListenEv" "name" : "_ZN17HighVolumeSpeaker6ListenEv"
} }
], ],
"elf_objects" : "elf_objects" :
[ [
{ {
"binding" : "global",
"name" : "_ZTV16LowVolumeSpeaker" "name" : "_ZTV16LowVolumeSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZTV17HighVolumeSpeaker" "name" : "_ZTV17HighVolumeSpeaker"
} }
], ],
@@ -139,137 +116,110 @@
"functions" : "functions" :
[ [
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLouder", "function_name" : "SuperSpeaker::SpeakLouder",
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv", "linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::CreateSuperSpeaker", "function_name" : "SuperSpeaker::CreateSuperSpeaker",
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi", "linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"return_type" : "type-9", "return_type" : "type-9",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLoud", "function_name" : "SuperSpeaker::SpeakLoud",
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv", "linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-8", "return_type" : "type-8",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Speak", "function_name" : "LowVolumeSpeaker::Speak",
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Listen", "function_name" : "LowVolumeSpeaker::Listen",
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::BadPractice", "function_name" : "HighVolumeSpeaker::BadPractice",
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf", "linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
}, },
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-3" "referenced_type" : "type-3"
} }
], ],
"return_type" : "type-12", "return_type" : "type-12",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Speak", "function_name" : "HighVolumeSpeaker::Speak",
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Listen", "function_name" : "HighVolumeSpeaker::Listen",
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
} }
], ],
"global_vars" : [], "global_vars" : [],
@@ -317,9 +267,7 @@
"record_types" : "record_types" :
[ [
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : [],
"fields" : "fields" :
[ [
{ {
@@ -329,7 +277,6 @@
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "SuperSpeaker", "linker_set_key" : "SuperSpeaker",
"name" : "SuperSpeaker", "name" : "SuperSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -337,61 +284,42 @@
"self_type" : "type-1", "self_type" : "type-1",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
"template_args" : [],
"unique_id" : "_ZTS12SuperSpeaker", "unique_id" : "_ZTS12SuperSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI12SuperSpeaker" "mangled_component_name" : "_ZTI12SuperSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv" "mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv" "mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev" "mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev" "mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : [],
"is_anonymous" : false,
"linker_set_key" : "HighVolumeSpeaker", "linker_set_key" : "HighVolumeSpeaker",
"name" : "HighVolumeSpeaker", "name" : "HighVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -399,75 +327,53 @@
"self_type" : "type-11", "self_type" : "type-11",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS17HighVolumeSpeaker", "unique_id" : "_ZTS17HighVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI17HighVolumeSpeaker" "mangled_component_name" : "_ZTI17HighVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : "fields" :
[ [
{ {
"access" : "public",
"field_name" : "speaker_uint_t", "field_name" : "speaker_uint_t",
"field_offset" : 96, "field_offset" : 96,
"referenced_type" : "type-6" "referenced_type" : "type-6"
}, },
{ {
"access" : "public",
"field_name" : "speaker_float_star", "field_name" : "speaker_float_star",
"field_offset" : 128, "field_offset" : 128,
"referenced_type" : "type-7" "referenced_type" : "type-7"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "LowVolumeSpeaker", "linker_set_key" : "LowVolumeSpeaker",
"name" : "LowVolumeSpeaker", "name" : "LowVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -475,43 +381,27 @@
"self_type" : "type-5", "self_type" : "type-5",
"size" : 24, "size" : 24,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS16LowVolumeSpeaker", "unique_id" : "_ZTS16LowVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI16LowVolumeSpeaker" "mangled_component_name" : "_ZTI16LowVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
} }

View File

@@ -4,25 +4,20 @@
[ [
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "float", "linker_set_key" : "float",
"name" : "float", "name" : "float",
"referenced_type" : "type-3", "referenced_type" : "type-3",
"self_type" : "type-3", "self_type" : "type-3",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : true, "is_integral" : true,
"is_unsigned" : false,
"linker_set_key" : "int", "linker_set_key" : "int",
"name" : "int", "name" : "int",
"referenced_type" : "type-2", "referenced_type" : "type-2",
"self_type" : "type-2", "self_type" : "type-2",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
@@ -32,72 +27,54 @@
"name" : "unsigned int", "name" : "unsigned int",
"referenced_type" : "type-6", "referenced_type" : "type-6",
"self_type" : "type-6", "self_type" : "type-6",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 0,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "void", "linker_set_key" : "void",
"name" : "void", "name" : "void",
"referenced_type" : "type-10", "referenced_type" : "type-10",
"self_type" : "type-10", "self_type" : "type-10"
"size" : 0,
"source_file" : ""
} }
], ],
"elf_functions" : "elf_functions" :
[ [
{ {
"binding" : "global",
"name" : "_Z26test_virtual_function_callP12SuperSpeaker" "name" : "_Z26test_virtual_function_callP12SuperSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZN12NotReferenced" "name" : "_ZN12NotReferenced"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker11SpeakLouderEv" "name" : "_ZN12SuperSpeaker11SpeakLouderEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi" "name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker9SpeakLoudEv" "name" : "_ZN12SuperSpeaker9SpeakLoudEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker5SpeakEv" "name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker6ListenEv" "name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf" "name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker5SpeakEv" "name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker6ListenEv" "name" : "_ZN17HighVolumeSpeaker6ListenEv"
} }
], ],
"elf_objects" : "elf_objects" :
[ [
{ {
"binding" : "global",
"name" : "_ZTV16LowVolumeSpeaker" "name" : "_ZTV16LowVolumeSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZTV17HighVolumeSpeaker" "name" : "_ZTV17HighVolumeSpeaker"
} }
], ],
@@ -139,137 +116,110 @@
"functions" : "functions" :
[ [
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLouder", "function_name" : "SuperSpeaker::SpeakLouder",
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv", "linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::CreateSuperSpeaker", "function_name" : "SuperSpeaker::CreateSuperSpeaker",
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi", "linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"return_type" : "type-9", "return_type" : "type-9",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLoud", "function_name" : "SuperSpeaker::SpeakLoud",
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv", "linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-8", "return_type" : "type-8",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Speak", "function_name" : "LowVolumeSpeaker::Speak",
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Listen", "function_name" : "LowVolumeSpeaker::Listen",
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::BadPractice", "function_name" : "HighVolumeSpeaker::BadPractice",
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf", "linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
}, },
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-3" "referenced_type" : "type-3"
} }
], ],
"return_type" : "type-12", "return_type" : "type-12",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Speak", "function_name" : "HighVolumeSpeaker::Speak",
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Listen", "function_name" : "HighVolumeSpeaker::Listen",
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
} }
], ],
"global_vars" : [], "global_vars" : [],
@@ -317,9 +267,7 @@
"record_types" : "record_types" :
[ [
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : [],
"fields" : "fields" :
[ [
{ {
@@ -329,7 +277,6 @@
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "SuperSpeaker", "linker_set_key" : "SuperSpeaker",
"name" : "SuperSpeaker", "name" : "SuperSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -337,61 +284,42 @@
"self_type" : "type-1", "self_type" : "type-1",
"size" : 8, "size" : 8,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
"template_args" : [],
"unique_id" : "_ZTS12SuperSpeaker", "unique_id" : "_ZTS12SuperSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI12SuperSpeaker" "mangled_component_name" : "_ZTI12SuperSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv" "mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv" "mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev" "mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev" "mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : [],
"is_anonymous" : false,
"linker_set_key" : "HighVolumeSpeaker", "linker_set_key" : "HighVolumeSpeaker",
"name" : "HighVolumeSpeaker", "name" : "HighVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -399,75 +327,53 @@
"self_type" : "type-11", "self_type" : "type-11",
"size" : 8, "size" : 8,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS17HighVolumeSpeaker", "unique_id" : "_ZTS17HighVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI17HighVolumeSpeaker" "mangled_component_name" : "_ZTI17HighVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : "fields" :
[ [
{ {
"access" : "public",
"field_name" : "speaker_uint_t", "field_name" : "speaker_uint_t",
"field_offset" : 64, "field_offset" : 64,
"referenced_type" : "type-6" "referenced_type" : "type-6"
}, },
{ {
"access" : "public",
"field_name" : "speaker_float_star", "field_name" : "speaker_float_star",
"field_offset" : 96, "field_offset" : 96,
"referenced_type" : "type-7" "referenced_type" : "type-7"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "LowVolumeSpeaker", "linker_set_key" : "LowVolumeSpeaker",
"name" : "LowVolumeSpeaker", "name" : "LowVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -475,43 +381,27 @@
"self_type" : "type-5", "self_type" : "type-5",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS16LowVolumeSpeaker", "unique_id" : "_ZTS16LowVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI16LowVolumeSpeaker" "mangled_component_name" : "_ZTI16LowVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
} }

View File

@@ -4,25 +4,20 @@
[ [
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "float", "linker_set_key" : "float",
"name" : "float", "name" : "float",
"referenced_type" : "type-3", "referenced_type" : "type-3",
"self_type" : "type-3", "self_type" : "type-3",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : true, "is_integral" : true,
"is_unsigned" : false,
"linker_set_key" : "int", "linker_set_key" : "int",
"name" : "int", "name" : "int",
"referenced_type" : "type-2", "referenced_type" : "type-2",
"self_type" : "type-2", "self_type" : "type-2",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
@@ -32,72 +27,54 @@
"name" : "unsigned int", "name" : "unsigned int",
"referenced_type" : "type-6", "referenced_type" : "type-6",
"self_type" : "type-6", "self_type" : "type-6",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 0,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "void", "linker_set_key" : "void",
"name" : "void", "name" : "void",
"referenced_type" : "type-10", "referenced_type" : "type-10",
"self_type" : "type-10", "self_type" : "type-10"
"size" : 0,
"source_file" : ""
} }
], ],
"elf_functions" : "elf_functions" :
[ [
{ {
"binding" : "global",
"name" : "_Z26test_virtual_function_callP12SuperSpeaker" "name" : "_Z26test_virtual_function_callP12SuperSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZN12NotReferenced" "name" : "_ZN12NotReferenced"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker11SpeakLouderEv" "name" : "_ZN12SuperSpeaker11SpeakLouderEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi" "name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker9SpeakLoudEv" "name" : "_ZN12SuperSpeaker9SpeakLoudEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker5SpeakEv" "name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker6ListenEv" "name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf" "name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker5SpeakEv" "name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker6ListenEv" "name" : "_ZN17HighVolumeSpeaker6ListenEv"
} }
], ],
"elf_objects" : "elf_objects" :
[ [
{ {
"binding" : "global",
"name" : "_ZTV16LowVolumeSpeaker" "name" : "_ZTV16LowVolumeSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZTV17HighVolumeSpeaker" "name" : "_ZTV17HighVolumeSpeaker"
} }
], ],
@@ -139,137 +116,110 @@
"functions" : "functions" :
[ [
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLouder", "function_name" : "SuperSpeaker::SpeakLouder",
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv", "linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::CreateSuperSpeaker", "function_name" : "SuperSpeaker::CreateSuperSpeaker",
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi", "linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"return_type" : "type-9", "return_type" : "type-9",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLoud", "function_name" : "SuperSpeaker::SpeakLoud",
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv", "linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-8", "return_type" : "type-8",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Speak", "function_name" : "LowVolumeSpeaker::Speak",
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Listen", "function_name" : "LowVolumeSpeaker::Listen",
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::BadPractice", "function_name" : "HighVolumeSpeaker::BadPractice",
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf", "linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
}, },
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-3" "referenced_type" : "type-3"
} }
], ],
"return_type" : "type-12", "return_type" : "type-12",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Speak", "function_name" : "HighVolumeSpeaker::Speak",
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Listen", "function_name" : "HighVolumeSpeaker::Listen",
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
} }
], ],
"global_vars" : [], "global_vars" : [],
@@ -317,9 +267,7 @@
"record_types" : "record_types" :
[ [
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : [],
"fields" : "fields" :
[ [
{ {
@@ -329,7 +277,6 @@
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "SuperSpeaker", "linker_set_key" : "SuperSpeaker",
"name" : "SuperSpeaker", "name" : "SuperSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -337,61 +284,42 @@
"self_type" : "type-1", "self_type" : "type-1",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
"template_args" : [],
"unique_id" : "_ZTS12SuperSpeaker", "unique_id" : "_ZTS12SuperSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI12SuperSpeaker" "mangled_component_name" : "_ZTI12SuperSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv" "mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv" "mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev" "mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev" "mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : [],
"is_anonymous" : false,
"linker_set_key" : "HighVolumeSpeaker", "linker_set_key" : "HighVolumeSpeaker",
"name" : "HighVolumeSpeaker", "name" : "HighVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -399,75 +327,53 @@
"self_type" : "type-11", "self_type" : "type-11",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS17HighVolumeSpeaker", "unique_id" : "_ZTS17HighVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI17HighVolumeSpeaker" "mangled_component_name" : "_ZTI17HighVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : "fields" :
[ [
{ {
"access" : "public",
"field_name" : "speaker_uint_t", "field_name" : "speaker_uint_t",
"field_offset" : 96, "field_offset" : 96,
"referenced_type" : "type-6" "referenced_type" : "type-6"
}, },
{ {
"access" : "public",
"field_name" : "speaker_float_star", "field_name" : "speaker_float_star",
"field_offset" : 128, "field_offset" : 128,
"referenced_type" : "type-7" "referenced_type" : "type-7"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "LowVolumeSpeaker", "linker_set_key" : "LowVolumeSpeaker",
"name" : "LowVolumeSpeaker", "name" : "LowVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -475,43 +381,27 @@
"self_type" : "type-5", "self_type" : "type-5",
"size" : 24, "size" : 24,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS16LowVolumeSpeaker", "unique_id" : "_ZTS16LowVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI16LowVolumeSpeaker" "mangled_component_name" : "_ZTI16LowVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
} }

View File

@@ -4,25 +4,20 @@
[ [
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "float", "linker_set_key" : "float",
"name" : "float", "name" : "float",
"referenced_type" : "type-3", "referenced_type" : "type-3",
"self_type" : "type-3", "self_type" : "type-3",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : true, "is_integral" : true,
"is_unsigned" : false,
"linker_set_key" : "int", "linker_set_key" : "int",
"name" : "int", "name" : "int",
"referenced_type" : "type-2", "referenced_type" : "type-2",
"self_type" : "type-2", "self_type" : "type-2",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
@@ -32,72 +27,54 @@
"name" : "unsigned int", "name" : "unsigned int",
"referenced_type" : "type-6", "referenced_type" : "type-6",
"self_type" : "type-6", "self_type" : "type-6",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 0,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "void", "linker_set_key" : "void",
"name" : "void", "name" : "void",
"referenced_type" : "type-10", "referenced_type" : "type-10",
"self_type" : "type-10", "self_type" : "type-10"
"size" : 0,
"source_file" : ""
} }
], ],
"elf_functions" : "elf_functions" :
[ [
{ {
"binding" : "global",
"name" : "_Z26test_virtual_function_callP12SuperSpeaker" "name" : "_Z26test_virtual_function_callP12SuperSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZN12NotReferenced" "name" : "_ZN12NotReferenced"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker11SpeakLouderEv" "name" : "_ZN12SuperSpeaker11SpeakLouderEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi" "name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker9SpeakLoudEv" "name" : "_ZN12SuperSpeaker9SpeakLoudEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker5SpeakEv" "name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker6ListenEv" "name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf" "name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker5SpeakEv" "name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker6ListenEv" "name" : "_ZN17HighVolumeSpeaker6ListenEv"
} }
], ],
"elf_objects" : "elf_objects" :
[ [
{ {
"binding" : "global",
"name" : "_ZTV16LowVolumeSpeaker" "name" : "_ZTV16LowVolumeSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZTV17HighVolumeSpeaker" "name" : "_ZTV17HighVolumeSpeaker"
} }
], ],
@@ -139,137 +116,110 @@
"functions" : "functions" :
[ [
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLouder", "function_name" : "SuperSpeaker::SpeakLouder",
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv", "linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::CreateSuperSpeaker", "function_name" : "SuperSpeaker::CreateSuperSpeaker",
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi", "linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"return_type" : "type-9", "return_type" : "type-9",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLoud", "function_name" : "SuperSpeaker::SpeakLoud",
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv", "linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-8", "return_type" : "type-8",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Speak", "function_name" : "LowVolumeSpeaker::Speak",
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Listen", "function_name" : "LowVolumeSpeaker::Listen",
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::BadPractice", "function_name" : "HighVolumeSpeaker::BadPractice",
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf", "linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
}, },
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-3" "referenced_type" : "type-3"
} }
], ],
"return_type" : "type-12", "return_type" : "type-12",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Speak", "function_name" : "HighVolumeSpeaker::Speak",
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Listen", "function_name" : "HighVolumeSpeaker::Listen",
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
} }
], ],
"global_vars" : [], "global_vars" : [],
@@ -317,9 +267,7 @@
"record_types" : "record_types" :
[ [
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : [],
"fields" : "fields" :
[ [
{ {
@@ -329,7 +277,6 @@
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "SuperSpeaker", "linker_set_key" : "SuperSpeaker",
"name" : "SuperSpeaker", "name" : "SuperSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -337,61 +284,42 @@
"self_type" : "type-1", "self_type" : "type-1",
"size" : 8, "size" : 8,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
"template_args" : [],
"unique_id" : "_ZTS12SuperSpeaker", "unique_id" : "_ZTS12SuperSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI12SuperSpeaker" "mangled_component_name" : "_ZTI12SuperSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv" "mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv" "mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev" "mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev" "mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : [],
"is_anonymous" : false,
"linker_set_key" : "HighVolumeSpeaker", "linker_set_key" : "HighVolumeSpeaker",
"name" : "HighVolumeSpeaker", "name" : "HighVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -399,75 +327,53 @@
"self_type" : "type-11", "self_type" : "type-11",
"size" : 8, "size" : 8,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS17HighVolumeSpeaker", "unique_id" : "_ZTS17HighVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI17HighVolumeSpeaker" "mangled_component_name" : "_ZTI17HighVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 4, "alignment" : 4,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : "fields" :
[ [
{ {
"access" : "public",
"field_name" : "speaker_uint_t", "field_name" : "speaker_uint_t",
"field_offset" : 64, "field_offset" : 64,
"referenced_type" : "type-6" "referenced_type" : "type-6"
}, },
{ {
"access" : "public",
"field_name" : "speaker_float_star", "field_name" : "speaker_float_star",
"field_offset" : 96, "field_offset" : 96,
"referenced_type" : "type-7" "referenced_type" : "type-7"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "LowVolumeSpeaker", "linker_set_key" : "LowVolumeSpeaker",
"name" : "LowVolumeSpeaker", "name" : "LowVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -475,43 +381,27 @@
"self_type" : "type-5", "self_type" : "type-5",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS16LowVolumeSpeaker", "unique_id" : "_ZTS16LowVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI16LowVolumeSpeaker" "mangled_component_name" : "_ZTI16LowVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
} }

View File

@@ -4,25 +4,20 @@
[ [
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "float", "linker_set_key" : "float",
"name" : "float", "name" : "float",
"referenced_type" : "type-3", "referenced_type" : "type-3",
"self_type" : "type-3", "self_type" : "type-3",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
"is_integral" : true, "is_integral" : true,
"is_unsigned" : false,
"linker_set_key" : "int", "linker_set_key" : "int",
"name" : "int", "name" : "int",
"referenced_type" : "type-2", "referenced_type" : "type-2",
"self_type" : "type-2", "self_type" : "type-2",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 4, "alignment" : 4,
@@ -32,72 +27,54 @@
"name" : "unsigned int", "name" : "unsigned int",
"referenced_type" : "type-6", "referenced_type" : "type-6",
"self_type" : "type-6", "self_type" : "type-6",
"size" : 4, "size" : 4
"source_file" : ""
}, },
{ {
"alignment" : 0,
"is_integral" : false,
"is_unsigned" : false,
"linker_set_key" : "void", "linker_set_key" : "void",
"name" : "void", "name" : "void",
"referenced_type" : "type-10", "referenced_type" : "type-10",
"self_type" : "type-10", "self_type" : "type-10"
"size" : 0,
"source_file" : ""
} }
], ],
"elf_functions" : "elf_functions" :
[ [
{ {
"binding" : "global",
"name" : "_Z26test_virtual_function_callP12SuperSpeaker" "name" : "_Z26test_virtual_function_callP12SuperSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZN12NotReferenced" "name" : "_ZN12NotReferenced"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker11SpeakLouderEv" "name" : "_ZN12SuperSpeaker11SpeakLouderEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi" "name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
}, },
{ {
"binding" : "global",
"name" : "_ZN12SuperSpeaker9SpeakLoudEv" "name" : "_ZN12SuperSpeaker9SpeakLoudEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker5SpeakEv" "name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN16LowVolumeSpeaker6ListenEv" "name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf" "name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker5SpeakEv" "name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"binding" : "global",
"name" : "_ZN17HighVolumeSpeaker6ListenEv" "name" : "_ZN17HighVolumeSpeaker6ListenEv"
} }
], ],
"elf_objects" : "elf_objects" :
[ [
{ {
"binding" : "global",
"name" : "_ZTV16LowVolumeSpeaker" "name" : "_ZTV16LowVolumeSpeaker"
}, },
{ {
"binding" : "global",
"name" : "_ZTV17HighVolumeSpeaker" "name" : "_ZTV17HighVolumeSpeaker"
} }
], ],
@@ -139,137 +116,110 @@
"functions" : "functions" :
[ [
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLouder", "function_name" : "SuperSpeaker::SpeakLouder",
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv", "linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::CreateSuperSpeaker", "function_name" : "SuperSpeaker::CreateSuperSpeaker",
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi", "linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"return_type" : "type-9", "return_type" : "type-9",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "SuperSpeaker::SpeakLoud", "function_name" : "SuperSpeaker::SpeakLoud",
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv", "linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-9" "referenced_type" : "type-9"
} }
], ],
"return_type" : "type-8", "return_type" : "type-8",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Speak", "function_name" : "LowVolumeSpeaker::Speak",
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "LowVolumeSpeaker::Listen", "function_name" : "LowVolumeSpeaker::Listen",
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-4" "referenced_type" : "type-4"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::BadPractice", "function_name" : "HighVolumeSpeaker::BadPractice",
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf", "linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
}, },
{ {
"default_arg" : false,
"is_this_ptr" : false,
"referenced_type" : "type-3" "referenced_type" : "type-3"
} }
], ],
"return_type" : "type-12", "return_type" : "type-12",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Speak", "function_name" : "HighVolumeSpeaker::Speak",
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv", "linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
}, },
{ {
"access" : "public",
"function_name" : "HighVolumeSpeaker::Listen", "function_name" : "HighVolumeSpeaker::Listen",
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv", "linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
"parameters" : "parameters" :
[ [
{ {
"default_arg" : false,
"is_this_ptr" : true, "is_this_ptr" : true,
"referenced_type" : "type-12" "referenced_type" : "type-12"
} }
], ],
"return_type" : "type-10", "return_type" : "type-10",
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
"template_args" : []
} }
], ],
"global_vars" : [], "global_vars" : [],
@@ -317,9 +267,7 @@
"record_types" : "record_types" :
[ [
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : [],
"fields" : "fields" :
[ [
{ {
@@ -329,7 +277,6 @@
"referenced_type" : "type-2" "referenced_type" : "type-2"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "SuperSpeaker", "linker_set_key" : "SuperSpeaker",
"name" : "SuperSpeaker", "name" : "SuperSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -337,61 +284,42 @@
"self_type" : "type-1", "self_type" : "type-1",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
"template_args" : [],
"unique_id" : "_ZTS12SuperSpeaker", "unique_id" : "_ZTS12SuperSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI12SuperSpeaker" "mangled_component_name" : "_ZTI12SuperSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv" "mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : true, "is_pure" : true,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv" "mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev" "mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev" "mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : [],
"is_anonymous" : false,
"linker_set_key" : "HighVolumeSpeaker", "linker_set_key" : "HighVolumeSpeaker",
"name" : "HighVolumeSpeaker", "name" : "HighVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -399,75 +327,53 @@
"self_type" : "type-11", "self_type" : "type-11",
"size" : 16, "size" : 16,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS17HighVolumeSpeaker", "unique_id" : "_ZTS17HighVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI17HighVolumeSpeaker" "mangled_component_name" : "_ZTI17HighVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
} }
] ]
}, },
{ {
"access" : "public",
"alignment" : 8, "alignment" : 8,
"base_specifiers" : "base_specifiers" :
[ [
{ {
"access" : "public",
"is_virtual" : false,
"referenced_type" : "type-1" "referenced_type" : "type-1"
} }
], ],
"fields" : "fields" :
[ [
{ {
"access" : "public",
"field_name" : "speaker_uint_t", "field_name" : "speaker_uint_t",
"field_offset" : 96, "field_offset" : 96,
"referenced_type" : "type-6" "referenced_type" : "type-6"
}, },
{ {
"access" : "public",
"field_name" : "speaker_float_star", "field_name" : "speaker_float_star",
"field_offset" : 128, "field_offset" : 128,
"referenced_type" : "type-7" "referenced_type" : "type-7"
} }
], ],
"is_anonymous" : false,
"linker_set_key" : "LowVolumeSpeaker", "linker_set_key" : "LowVolumeSpeaker",
"name" : "LowVolumeSpeaker", "name" : "LowVolumeSpeaker",
"record_kind" : "class", "record_kind" : "class",
@@ -475,43 +381,27 @@
"self_type" : "type-5", "self_type" : "type-5",
"size" : 24, "size" : 24,
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h", "source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
"template_args" : [],
"unique_id" : "_ZTS16LowVolumeSpeaker", "unique_id" : "_ZTS16LowVolumeSpeaker",
"vtable_components" : "vtable_components" :
[ [
{ {
"component_value" : 0, "kind" : "offset_to_top"
"is_pure" : false,
"kind" : "offset_to_top",
"mangled_component_name" : ""
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "rtti", "kind" : "rtti",
"mangled_component_name" : "_ZTI16LowVolumeSpeaker" "mangled_component_name" : "_ZTI16LowVolumeSpeaker"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "function_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv" "mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "complete_dtor_pointer", "kind" : "complete_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
}, },
{ {
"component_value" : 0,
"is_pure" : false,
"kind" : "deleting_dtor_pointer", "kind" : "deleting_dtor_pointer",
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev" "mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
} }