Merge "Omit default values in JSON dumps"
am: bed6b4feb9
Change-Id: I4d29a2b576ed9441600ef6e55fc9fd22ac671da8
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
// message format specific dumpers.
|
||||
namespace abi_util {
|
||||
|
||||
// Classes that wrap constructor of Json::Value.
|
||||
// These classes wrap constructors of Json::Value.
|
||||
class JsonArray : public Json::Value {
|
||||
public:
|
||||
JsonArray() : Json::Value(Json::ValueType::arrayValue) {}
|
||||
@@ -31,6 +31,33 @@ class JsonArray : public Json::Value {
|
||||
class JsonObject : public Json::Value {
|
||||
public:
|
||||
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 {
|
||||
|
||||
@@ -35,6 +35,9 @@ static const std::map<AccessSpecifierIR, std::string> access_ir_to_json{
|
||||
static const std::map<std::string, AccessSpecifierIR>
|
||||
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>
|
||||
record_kind_ir_to_json{
|
||||
{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>
|
||||
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>
|
||||
vtable_component_kind_ir_to_json{
|
||||
{VTableComponentIR::Kind::VCallOffset, "vcall_offset"},
|
||||
@@ -61,6 +67,9 @@ static const std::map<std::string, VTableComponentIR::Kind>
|
||||
vtable_component_kind_json_to_ir(
|
||||
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>
|
||||
elf_symbol_binding_ir_to_json{
|
||||
{ElfSymbolIR::ElfSymbolBinding::Weak, "weak"},
|
||||
@@ -71,6 +80,9 @@ static const std::map<std::string, ElfSymbolIR::ElfSymbolBinding>
|
||||
elf_symbol_binding_json_to_ir(
|
||||
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.
|
||||
// Otherwise, it prints error_msg and exits.
|
||||
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;
|
||||
}
|
||||
|
||||
static inline const std::string &AccessIRToJson(AccessSpecifierIR access) {
|
||||
return FindInMap(access_ir_to_json, access,
|
||||
"Failed to convert AccessSpecifierIR to JSON");
|
||||
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("");
|
||||
|
||||
void JsonObject::Set(const std::string &key, bool value) {
|
||||
SetOmissible(key, value, false);
|
||||
}
|
||||
|
||||
static inline AccessSpecifierIR AccessJsonToIR(const std::string &access) {
|
||||
return FindInMap(access_json_to_ir, access,
|
||||
"Failed to convert JSON to AccessSpecifierIR");
|
||||
void JsonObject::Set(const std::string &key, uint64_t value) {
|
||||
SetOmissible<Json::UInt64>(key, value, 0);
|
||||
}
|
||||
|
||||
static inline const std::string &
|
||||
RecordKindIRToJson(RecordTypeIR::RecordKind kind) {
|
||||
return FindInMap(record_kind_ir_to_json, kind,
|
||||
"Failed to convert RecordKind to JSON");
|
||||
void JsonObject::Set(const std::string &key, int64_t value) {
|
||||
SetOmissible<Json::Int64>(key, value, 0);
|
||||
}
|
||||
|
||||
static inline RecordTypeIR::RecordKind
|
||||
RecordKindJsonToIR(const std::string &kind) {
|
||||
return FindInMap(record_kind_json_to_ir, kind,
|
||||
"Failed to convert JSON to RecordKind");
|
||||
void JsonObject::Set(const std::string &key, const std::string &value) {
|
||||
SetOmissible<const std::string &>(key, value, "");
|
||||
}
|
||||
|
||||
static inline const std::string &
|
||||
VTableComponentKindIRToJson(VTableComponentIR::Kind kind) {
|
||||
return FindInMap(vtable_component_kind_ir_to_json, kind,
|
||||
"Failed to convert VTableComponentIR::Kind to JSON");
|
||||
void JsonObject::Set(const std::string &key, const JsonArray &value) {
|
||||
SetOmissible(key, value, json_empty_array);
|
||||
}
|
||||
|
||||
static inline VTableComponentIR::Kind
|
||||
VTableComponentKindJsonToIR(const std::string &kind) {
|
||||
return FindInMap(vtable_component_kind_json_to_ir, kind,
|
||||
"Failed to convert JSON to VTableComponentIR::Kind");
|
||||
static void AddAccess(JsonObject &type_decl, AccessSpecifierIR value) {
|
||||
if (value != default_access_ir) {
|
||||
type_decl.Set("access",
|
||||
FindInMap(access_ir_to_json, value,
|
||||
"Failed to convert AccessSpecifierIR to JSON"));
|
||||
}
|
||||
}
|
||||
|
||||
static inline const std::string &
|
||||
ElfSymbolBindingIRToJson(ElfSymbolIR::ElfSymbolBinding binding) {
|
||||
return FindInMap(elf_symbol_binding_ir_to_json, binding,
|
||||
"Failed to convert ElfSymbolBinding to JSON");
|
||||
static void AddRecordKind(JsonObject &record_type,
|
||||
RecordTypeIR::RecordKind value) {
|
||||
if (value != default_record_kind_ir) {
|
||||
record_type.Set("record_kind",
|
||||
FindInMap(record_kind_ir_to_json, value,
|
||||
"Failed to convert RecordKind to JSON"));
|
||||
}
|
||||
}
|
||||
|
||||
static inline ElfSymbolIR::ElfSymbolBinding
|
||||
ElfSymbolBindingJsonToIR(const std::string &binding) {
|
||||
return FindInMap(elf_symbol_binding_json_to_ir, binding,
|
||||
"Failed to convert JSON to ElfSymbolBinding");
|
||||
static void AddVtableComponentKind(JsonObject &vtable_component,
|
||||
VTableComponentIR::Kind value) {
|
||||
if (value != default_vtable_component_kind_ir) {
|
||||
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(
|
||||
JsonObject &type_decl, const TemplatedArtifactIR *template_ir) {
|
||||
Json::Value &args = type_decl["template_args"];
|
||||
args = JsonArray();
|
||||
JsonArray args;
|
||||
for (auto &&template_element_ir : template_ir->GetTemplateElements()) {
|
||||
args.append(template_element_ir.GetReferencedType());
|
||||
}
|
||||
type_decl.Set("template_args", args);
|
||||
}
|
||||
|
||||
void IRToJsonConverter::AddTypeInfo(JsonObject &type_decl,
|
||||
const TypeIR *type_ir) {
|
||||
type_decl["linker_set_key"] = type_ir->GetLinkerSetKey();
|
||||
type_decl["source_file"] = type_ir->GetSourceFile();
|
||||
type_decl["name"] = type_ir->GetName();
|
||||
type_decl["size"] = Json::UInt64(type_ir->GetSize());
|
||||
type_decl["alignment"] = type_ir->GetAlignment();
|
||||
type_decl["referenced_type"] = type_ir->GetReferencedType();
|
||||
type_decl["self_type"] = type_ir->GetSelfType();
|
||||
type_decl.Set("linker_set_key", type_ir->GetLinkerSetKey());
|
||||
type_decl.Set("source_file", type_ir->GetSourceFile());
|
||||
type_decl.Set("name", type_ir->GetName());
|
||||
type_decl.Set("size", (uint64_t)type_ir->GetSize());
|
||||
type_decl.Set("alignment", (uint64_t)type_ir->GetAlignment());
|
||||
type_decl.Set("referenced_type", type_ir->GetReferencedType());
|
||||
type_decl.Set("self_type", type_ir->GetSelfType());
|
||||
}
|
||||
|
||||
static JsonObject ConvertRecordFieldIR(const RecordFieldIR *record_field_ir) {
|
||||
JsonObject record_field;
|
||||
record_field["field_name"] = record_field_ir->GetName();
|
||||
record_field["referenced_type"] = record_field_ir->GetReferencedType();
|
||||
record_field["access"] = AccessIRToJson(record_field_ir->GetAccess());
|
||||
record_field["field_offset"] = Json::UInt64(record_field_ir->GetOffset());
|
||||
record_field.Set("field_name", record_field_ir->GetName());
|
||||
record_field.Set("referenced_type", record_field_ir->GetReferencedType());
|
||||
AddAccess(record_field, record_field_ir->GetAccess());
|
||||
record_field.Set("field_offset", (uint64_t)record_field_ir->GetOffset());
|
||||
return record_field;
|
||||
}
|
||||
|
||||
void IRToJsonConverter::AddRecordFields(JsonObject &record_type,
|
||||
const RecordTypeIR *record_ir) {
|
||||
Json::Value &fields = record_type["fields"];
|
||||
fields = JsonArray();
|
||||
JsonArray fields;
|
||||
for (auto &&field_ir : record_ir->GetFields()) {
|
||||
fields.append(ConvertRecordFieldIR(&field_ir));
|
||||
}
|
||||
record_type.Set("fields", fields);
|
||||
}
|
||||
|
||||
static JsonObject
|
||||
ConvertBaseSpecifierIR(const CXXBaseSpecifierIR &base_specifier_ir) {
|
||||
JsonObject base_specifier;
|
||||
base_specifier["referenced_type"] = base_specifier_ir.GetReferencedType();
|
||||
base_specifier["is_virtual"] = base_specifier_ir.IsVirtual();
|
||||
base_specifier["access"] = AccessIRToJson(base_specifier_ir.GetAccess());
|
||||
base_specifier.Set("referenced_type", base_specifier_ir.GetReferencedType());
|
||||
base_specifier.Set("is_virtual", base_specifier_ir.IsVirtual());
|
||||
AddAccess(base_specifier, base_specifier_ir.GetAccess());
|
||||
return base_specifier;
|
||||
}
|
||||
|
||||
void IRToJsonConverter::AddBaseSpecifiers(JsonObject &record_type,
|
||||
const RecordTypeIR *record_ir) {
|
||||
Json::Value &base_specifiers = record_type["base_specifiers"];
|
||||
base_specifiers = JsonArray();
|
||||
JsonArray base_specifiers;
|
||||
for (auto &&base_ir : record_ir->GetBases()) {
|
||||
base_specifiers.append(ConvertBaseSpecifierIR(base_ir));
|
||||
}
|
||||
record_type.Set("base_specifiers", base_specifiers);
|
||||
}
|
||||
|
||||
static JsonObject
|
||||
ConvertVTableComponentIR(const VTableComponentIR &vtable_component_ir) {
|
||||
JsonObject vtable_component;
|
||||
vtable_component["kind"] =
|
||||
VTableComponentKindIRToJson(vtable_component_ir.GetKind());
|
||||
vtable_component["component_value"] =
|
||||
Json::Int64(vtable_component_ir.GetValue());
|
||||
vtable_component["mangled_component_name"] = vtable_component_ir.GetName();
|
||||
vtable_component["is_pure"] = vtable_component_ir.GetIsPure();
|
||||
AddVtableComponentKind(vtable_component, vtable_component_ir.GetKind());
|
||||
vtable_component.Set("component_value",
|
||||
(int64_t)vtable_component_ir.GetValue());
|
||||
vtable_component.Set("mangled_component_name", vtable_component_ir.GetName());
|
||||
vtable_component.Set("is_pure", vtable_component_ir.GetIsPure());
|
||||
return vtable_component;
|
||||
}
|
||||
|
||||
void IRToJsonConverter::AddVTableLayout(JsonObject &record_type,
|
||||
const RecordTypeIR *record_ir) {
|
||||
Json::Value &vtable_components = record_type["vtable_components"];
|
||||
vtable_components = JsonArray();
|
||||
JsonArray vtable_components;
|
||||
for (auto &&vtable_component_ir :
|
||||
record_ir->GetVTableLayout().GetVTableComponents()) {
|
||||
vtable_components.append(ConvertVTableComponentIR(vtable_component_ir));
|
||||
}
|
||||
record_type.Set("vtable_components", vtable_components);
|
||||
}
|
||||
|
||||
void IRToJsonConverter::AddTagTypeInfo(JsonObject &type_decl,
|
||||
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 record_type;
|
||||
|
||||
record_type["access"] = AccessIRToJson(recordp->GetAccess());
|
||||
record_type["record_kind"] = RecordKindIRToJson(recordp->GetRecordKind());
|
||||
record_type["is_anonymous"] = recordp->IsAnonymous();
|
||||
AddAccess(record_type, recordp->GetAccess());
|
||||
AddRecordKind(record_type, recordp->GetRecordKind());
|
||||
record_type.Set("is_anonymous", recordp->IsAnonymous());
|
||||
AddTypeInfo(record_type, recordp);
|
||||
AddRecordFields(record_type, recordp);
|
||||
AddBaseSpecifiers(record_type, recordp);
|
||||
@@ -230,20 +256,21 @@ JsonObject IRToJsonConverter::ConvertRecordTypeIR(const RecordTypeIR *recordp) {
|
||||
|
||||
void IRToJsonConverter::AddFunctionParametersAndSetReturnType(
|
||||
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);
|
||||
}
|
||||
|
||||
void IRToJsonConverter::AddFunctionParameters(
|
||||
JsonObject &function, const CFunctionLikeIR *cfunction_like_ir) {
|
||||
Json::Value ¶meters = function["parameters"];
|
||||
parameters = JsonArray();
|
||||
JsonArray parameters;
|
||||
for (auto &¶meter_ir : cfunction_like_ir->GetParameters()) {
|
||||
Json::Value ¶meter = parameters.append(JsonObject());
|
||||
parameter["referenced_type"] = parameter_ir.GetReferencedType();
|
||||
parameter["default_arg"] = parameter_ir.GetIsDefault();
|
||||
parameter["is_this_ptr"] = parameter_ir.GetIsThisPtr();
|
||||
JsonObject parameter;
|
||||
parameter.Set("referenced_type", parameter_ir.GetReferencedType());
|
||||
parameter.Set("default_arg", parameter_ir.GetIsDefault());
|
||||
parameter.Set("is_this_ptr", parameter_ir.GetIsThisPtr());
|
||||
parameters.append(parameter);
|
||||
}
|
||||
function.Set("parameters", parameters);
|
||||
}
|
||||
|
||||
JsonObject
|
||||
@@ -256,10 +283,10 @@ IRToJsonConverter::ConvertFunctionTypeIR(const FunctionTypeIR *function_typep) {
|
||||
|
||||
JsonObject IRToJsonConverter::ConvertFunctionIR(const FunctionIR *functionp) {
|
||||
JsonObject function;
|
||||
function["access"] = AccessIRToJson(functionp->GetAccess());
|
||||
function["linker_set_key"] = functionp->GetLinkerSetKey();
|
||||
function["source_file"] = functionp->GetSourceFile();
|
||||
function["function_name"] = functionp->GetName();
|
||||
AddAccess(function, functionp->GetAccess());
|
||||
function.Set("linker_set_key", functionp->GetLinkerSetKey());
|
||||
function.Set("source_file", functionp->GetSourceFile());
|
||||
function.Set("function_name", functionp->GetName());
|
||||
AddFunctionParametersAndSetReturnType(function, functionp);
|
||||
AddTemplateInfo(function, functionp);
|
||||
return function;
|
||||
@@ -267,24 +294,24 @@ JsonObject IRToJsonConverter::ConvertFunctionIR(const FunctionIR *functionp) {
|
||||
|
||||
static JsonObject ConvertEnumFieldIR(const EnumFieldIR *enum_field_ir) {
|
||||
JsonObject enum_field;
|
||||
enum_field["name"] = enum_field_ir->GetName();
|
||||
enum_field["enum_field_value"] = Json::Int64(enum_field_ir->GetValue());
|
||||
enum_field.Set("name", enum_field_ir->GetName());
|
||||
enum_field.Set("enum_field_value", (int64_t)enum_field_ir->GetValue());
|
||||
return enum_field;
|
||||
}
|
||||
|
||||
void IRToJsonConverter::AddEnumFields(JsonObject &enum_type,
|
||||
const EnumTypeIR *enum_ir) {
|
||||
Json::Value &enum_fields = enum_type["enum_fields"];
|
||||
enum_fields = JsonArray();
|
||||
JsonArray enum_fields;
|
||||
for (auto &&field : enum_ir->GetFields()) {
|
||||
enum_fields.append(ConvertEnumFieldIR(&field));
|
||||
}
|
||||
enum_type.Set("enum_fields", enum_fields);
|
||||
}
|
||||
|
||||
JsonObject IRToJsonConverter::ConvertEnumTypeIR(const EnumTypeIR *enump) {
|
||||
JsonObject enum_type;
|
||||
enum_type["access"] = AccessIRToJson(enump->GetAccess());
|
||||
enum_type["underlying_type"] = enump->GetUnderlyingType();
|
||||
AddAccess(enum_type, enump->GetAccess());
|
||||
enum_type.Set("underlying_type", enump->GetUnderlyingType());
|
||||
AddTypeInfo(enum_type, enump);
|
||||
AddEnumFields(enum_type, enump);
|
||||
AddTagTypeInfo(enum_type, enump);
|
||||
@@ -294,11 +321,11 @@ JsonObject IRToJsonConverter::ConvertEnumTypeIR(const EnumTypeIR *enump) {
|
||||
JsonObject
|
||||
IRToJsonConverter::ConvertGlobalVarIR(const GlobalVarIR *global_varp) {
|
||||
JsonObject global_var;
|
||||
global_var["referenced_type"] = global_varp->GetReferencedType();
|
||||
global_var["source_file"] = global_varp->GetSourceFile();
|
||||
global_var["name"] = global_varp->GetName();
|
||||
global_var["linker_set_key"] = global_varp->GetLinkerSetKey();
|
||||
global_var["access"] = AccessIRToJson(global_varp->GetAccess());
|
||||
global_var.Set("referenced_type", global_varp->GetReferencedType());
|
||||
global_var.Set("source_file", global_varp->GetSourceFile());
|
||||
global_var.Set("name", global_varp->GetName());
|
||||
global_var.Set("linker_set_key", global_varp->GetLinkerSetKey());
|
||||
AddAccess(global_var, global_varp->GetAccess());
|
||||
return global_var;
|
||||
}
|
||||
|
||||
@@ -313,17 +340,17 @@ JsonObject
|
||||
IRToJsonConverter::ConvertQualifiedTypeIR(const QualifiedTypeIR *qualtypep) {
|
||||
JsonObject qualified_type;
|
||||
AddTypeInfo(qualified_type, qualtypep);
|
||||
qualified_type["is_const"] = qualtypep->IsConst();
|
||||
qualified_type["is_volatile"] = qualtypep->IsVolatile();
|
||||
qualified_type["is_restricted"] = qualtypep->IsRestricted();
|
||||
qualified_type.Set("is_const", qualtypep->IsConst());
|
||||
qualified_type.Set("is_volatile", qualtypep->IsVolatile());
|
||||
qualified_type.Set("is_restricted", qualtypep->IsRestricted());
|
||||
return qualified_type;
|
||||
}
|
||||
|
||||
JsonObject
|
||||
IRToJsonConverter::ConvertBuiltinTypeIR(const BuiltinTypeIR *builtin_typep) {
|
||||
JsonObject builtin_type;
|
||||
builtin_type["is_unsigned"] = builtin_typep->IsUnsigned();
|
||||
builtin_type["is_integral"] = builtin_typep->IsIntegralType();
|
||||
builtin_type.Set("is_unsigned", builtin_typep->IsUnsigned());
|
||||
builtin_type.Set("is_integral", builtin_typep->IsIntegralType());
|
||||
AddTypeInfo(builtin_type, builtin_typep);
|
||||
return builtin_type;
|
||||
}
|
||||
@@ -420,10 +447,10 @@ bool JsonIRDumper::AddElfSymbolMessageIR(const ElfSymbolIR *elf_symbol_ir) {
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
Json::Value &elf_symbol = translation_unit_[key].append(JsonObject());
|
||||
elf_symbol["name"] = elf_symbol_ir->GetName();
|
||||
elf_symbol["binding"] =
|
||||
ElfSymbolBindingIRToJson(elf_symbol_ir->GetBinding());
|
||||
JsonObject elf_symbol;
|
||||
elf_symbol.Set("name", elf_symbol_ir->GetName());
|
||||
AddElfSymbolBinding(elf_symbol, elf_symbol_ir->GetBinding());
|
||||
translation_unit_[key].append(elf_symbol);
|
||||
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)
|
||||
: object_(json_value.isObject() ? json_value : json_empty_object), ok_(ok) {
|
||||
if (!json_value.isObject()) {
|
||||
@@ -555,6 +576,45 @@ template <> std::string JsonArrayRef<std::string>::Iterator::operator*() const {
|
||||
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) {
|
||||
Json::Value tu_json;
|
||||
Json::Reader reader;
|
||||
@@ -621,10 +681,9 @@ void JsonToIRReader::ReadTypeInfo(const JsonObjectRef &type_decl,
|
||||
void JsonToIRReader::ReadRecordFields(const JsonObjectRef &record_type,
|
||||
RecordTypeIR *record_ir) {
|
||||
for (auto &&field : record_type.GetObjects("fields")) {
|
||||
RecordFieldIR record_field_ir(field.GetString("field_name"),
|
||||
field.GetString("referenced_type"),
|
||||
field.GetUint("field_offset"),
|
||||
AccessJsonToIR(field.GetString("access")));
|
||||
RecordFieldIR record_field_ir(
|
||||
field.GetString("field_name"), field.GetString("referenced_type"),
|
||||
field.GetUint("field_offset"), GetAccess(field));
|
||||
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")) {
|
||||
CXXBaseSpecifierIR record_base_ir(
|
||||
base_specifier.GetString("referenced_type"),
|
||||
base_specifier.GetBool("is_virtual"),
|
||||
AccessJsonToIR(base_specifier.GetString("access")));
|
||||
base_specifier.GetBool("is_virtual"), GetAccess(base_specifier));
|
||||
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")) {
|
||||
VTableComponentIR vtable_component_ir(
|
||||
vtable_component.GetString("mangled_component_name"),
|
||||
VTableComponentKindJsonToIR(vtable_component.GetString("kind")),
|
||||
GetVTableComponentKind(vtable_component),
|
||||
vtable_component.GetInt("component_value"),
|
||||
vtable_component.GetBool("is_pure"));
|
||||
vtable_layout_ir.AddVTableComponent(std::move(vtable_component_ir));
|
||||
@@ -678,7 +736,7 @@ FunctionIR JsonToIRReader::FunctionJsonToIR(const JsonObjectRef &function) {
|
||||
FunctionIR function_ir;
|
||||
function_ir.SetLinkerSetKey(function.GetString("linker_set_key"));
|
||||
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"));
|
||||
ReadFunctionParametersAndReturnType(function, &function_ir);
|
||||
ReadTemplateInfo(function, &function_ir);
|
||||
@@ -698,12 +756,11 @@ JsonToIRReader::RecordTypeJsonToIR(const JsonObjectRef &record_type) {
|
||||
RecordTypeIR record_type_ir;
|
||||
ReadTypeInfo(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);
|
||||
ReadRecordFields(record_type, &record_type_ir);
|
||||
ReadBaseSpecifiers(record_type, &record_type_ir);
|
||||
record_type_ir.SetRecordKind(
|
||||
RecordKindJsonToIR(record_type.GetString("record_kind")));
|
||||
record_type_ir.SetRecordKind(GetRecordKind(record_type));
|
||||
record_type_ir.SetAnonymity(record_type.GetBool("is_anonymous"));
|
||||
ReadTagTypeInfo(record_type, &record_type_ir);
|
||||
return record_type_ir;
|
||||
@@ -713,7 +770,7 @@ EnumTypeIR JsonToIRReader::EnumTypeJsonToIR(const JsonObjectRef &enum_type) {
|
||||
EnumTypeIR enum_type_ir;
|
||||
ReadTypeInfo(enum_type, &enum_type_ir);
|
||||
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);
|
||||
ReadTagTypeInfo(enum_type, &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")) {
|
||||
GlobalVarIR global_variable_ir;
|
||||
global_variable_ir.SetName(global_variable.GetString("name"));
|
||||
global_variable_ir.SetAccess(
|
||||
AccessJsonToIR(global_variable.GetString("access")));
|
||||
global_variable_ir.SetAccess(GetAccess(global_variable));
|
||||
global_variable_ir.SetSourceFile(global_variable.GetString("source_file"));
|
||||
global_variable_ir.SetReferencedType(
|
||||
global_variable.GetString("referenced_type"));
|
||||
@@ -863,9 +919,8 @@ void JsonToIRReader::ReadEnumTypes(const JsonObjectRef &tu) {
|
||||
|
||||
void JsonToIRReader::ReadElfFunctions(const JsonObjectRef &tu) {
|
||||
for (auto &&elf_function : tu.GetObjects("elf_functions")) {
|
||||
ElfFunctionIR elf_function_ir(
|
||||
elf_function.GetString("name"),
|
||||
ElfSymbolBindingJsonToIR(elf_function.GetString("binding")));
|
||||
ElfFunctionIR elf_function_ir(elf_function.GetString("name"),
|
||||
GetElfSymbolBinding(elf_function));
|
||||
elf_functions_.insert(
|
||||
{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) {
|
||||
for (auto &&elf_object : tu.GetObjects("elf_objects")) {
|
||||
ElfObjectIR elf_object_ir(
|
||||
elf_object.GetString("name"),
|
||||
ElfSymbolBindingJsonToIR(elf_object.GetString("binding")));
|
||||
ElfObjectIR elf_object_ir(elf_object.GetString("name"),
|
||||
GetElfSymbolBinding(elf_object));
|
||||
elf_objects_.insert({elf_object_ir.GetName(), std::move(elf_object_ir)});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,25 +4,20 @@
|
||||
[
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "float",
|
||||
"name" : "float",
|
||||
"referenced_type" : "type-3",
|
||||
"self_type" : "type-3",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : true,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "int",
|
||||
"name" : "int",
|
||||
"referenced_type" : "type-2",
|
||||
"self_type" : "type-2",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
@@ -32,72 +27,54 @@
|
||||
"name" : "unsigned int",
|
||||
"referenced_type" : "type-6",
|
||||
"self_type" : "type-6",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 0,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "void",
|
||||
"name" : "void",
|
||||
"referenced_type" : "type-10",
|
||||
"self_type" : "type-10",
|
||||
"size" : 0,
|
||||
"source_file" : ""
|
||||
"self_type" : "type-10"
|
||||
}
|
||||
],
|
||||
"elf_functions" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_Z26test_virtual_function_callP12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12NotReferenced"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker11SpeakLouderEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker9SpeakLoudEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
}
|
||||
],
|
||||
"elf_objects" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV17HighVolumeSpeaker"
|
||||
}
|
||||
],
|
||||
@@ -139,137 +116,110 @@
|
||||
"functions" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLouder",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::CreateSuperSpeaker",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-9",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLoud",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-8",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::BadPractice",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
},
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-3"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-12",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
}
|
||||
],
|
||||
"global_vars" : [],
|
||||
@@ -317,9 +267,7 @@
|
||||
"record_types" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" : [],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
@@ -329,7 +277,6 @@
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "SuperSpeaker",
|
||||
"name" : "SuperSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -337,61 +284,42 @@
|
||||
"self_type" : "type-1",
|
||||
"size" : 8,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS12SuperSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" : [],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "HighVolumeSpeaker",
|
||||
"name" : "HighVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -399,75 +327,53 @@
|
||||
"self_type" : "type-11",
|
||||
"size" : 8,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS17HighVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI17HighVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_uint_t",
|
||||
"field_offset" : 64,
|
||||
"referenced_type" : "type-6"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_float_star",
|
||||
"field_offset" : 96,
|
||||
"referenced_type" : "type-7"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "LowVolumeSpeaker",
|
||||
"name" : "LowVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -475,43 +381,27 @@
|
||||
"self_type" : "type-5",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS16LowVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
|
||||
}
|
||||
|
||||
@@ -4,25 +4,20 @@
|
||||
[
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "float",
|
||||
"name" : "float",
|
||||
"referenced_type" : "type-3",
|
||||
"self_type" : "type-3",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : true,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "int",
|
||||
"name" : "int",
|
||||
"referenced_type" : "type-2",
|
||||
"self_type" : "type-2",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
@@ -32,72 +27,54 @@
|
||||
"name" : "unsigned int",
|
||||
"referenced_type" : "type-6",
|
||||
"self_type" : "type-6",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 0,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "void",
|
||||
"name" : "void",
|
||||
"referenced_type" : "type-10",
|
||||
"self_type" : "type-10",
|
||||
"size" : 0,
|
||||
"source_file" : ""
|
||||
"self_type" : "type-10"
|
||||
}
|
||||
],
|
||||
"elf_functions" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_Z26test_virtual_function_callP12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12NotReferenced"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker11SpeakLouderEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker9SpeakLoudEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
}
|
||||
],
|
||||
"elf_objects" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV17HighVolumeSpeaker"
|
||||
}
|
||||
],
|
||||
@@ -139,137 +116,110 @@
|
||||
"functions" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLouder",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::CreateSuperSpeaker",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-9",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLoud",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-8",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::BadPractice",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
},
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-3"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-12",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
}
|
||||
],
|
||||
"global_vars" : [],
|
||||
@@ -317,9 +267,7 @@
|
||||
"record_types" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" : [],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
@@ -329,7 +277,6 @@
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "SuperSpeaker",
|
||||
"name" : "SuperSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -337,61 +284,42 @@
|
||||
"self_type" : "type-1",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS12SuperSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" : [],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "HighVolumeSpeaker",
|
||||
"name" : "HighVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -399,75 +327,53 @@
|
||||
"self_type" : "type-11",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS17HighVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI17HighVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_uint_t",
|
||||
"field_offset" : 96,
|
||||
"referenced_type" : "type-6"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_float_star",
|
||||
"field_offset" : 128,
|
||||
"referenced_type" : "type-7"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "LowVolumeSpeaker",
|
||||
"name" : "LowVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -475,43 +381,27 @@
|
||||
"self_type" : "type-5",
|
||||
"size" : 24,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS16LowVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
|
||||
}
|
||||
|
||||
@@ -4,25 +4,20 @@
|
||||
[
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "float",
|
||||
"name" : "float",
|
||||
"referenced_type" : "type-3",
|
||||
"self_type" : "type-3",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : true,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "int",
|
||||
"name" : "int",
|
||||
"referenced_type" : "type-2",
|
||||
"self_type" : "type-2",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
@@ -32,72 +27,54 @@
|
||||
"name" : "unsigned int",
|
||||
"referenced_type" : "type-6",
|
||||
"self_type" : "type-6",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 0,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "void",
|
||||
"name" : "void",
|
||||
"referenced_type" : "type-10",
|
||||
"self_type" : "type-10",
|
||||
"size" : 0,
|
||||
"source_file" : ""
|
||||
"self_type" : "type-10"
|
||||
}
|
||||
],
|
||||
"elf_functions" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_Z26test_virtual_function_callP12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12NotReferenced"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker11SpeakLouderEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker9SpeakLoudEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
}
|
||||
],
|
||||
"elf_objects" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV17HighVolumeSpeaker"
|
||||
}
|
||||
],
|
||||
@@ -139,137 +116,110 @@
|
||||
"functions" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLouder",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::CreateSuperSpeaker",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-9",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLoud",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-8",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::BadPractice",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
},
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-3"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-12",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
}
|
||||
],
|
||||
"global_vars" : [],
|
||||
@@ -317,9 +267,7 @@
|
||||
"record_types" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" : [],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
@@ -329,7 +277,6 @@
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "SuperSpeaker",
|
||||
"name" : "SuperSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -337,61 +284,42 @@
|
||||
"self_type" : "type-1",
|
||||
"size" : 8,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS12SuperSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" : [],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "HighVolumeSpeaker",
|
||||
"name" : "HighVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -399,75 +327,53 @@
|
||||
"self_type" : "type-11",
|
||||
"size" : 8,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS17HighVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI17HighVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_uint_t",
|
||||
"field_offset" : 64,
|
||||
"referenced_type" : "type-6"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_float_star",
|
||||
"field_offset" : 96,
|
||||
"referenced_type" : "type-7"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "LowVolumeSpeaker",
|
||||
"name" : "LowVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -475,43 +381,27 @@
|
||||
"self_type" : "type-5",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS16LowVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
|
||||
}
|
||||
|
||||
@@ -4,25 +4,20 @@
|
||||
[
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "float",
|
||||
"name" : "float",
|
||||
"referenced_type" : "type-3",
|
||||
"self_type" : "type-3",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : true,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "int",
|
||||
"name" : "int",
|
||||
"referenced_type" : "type-2",
|
||||
"self_type" : "type-2",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
@@ -32,72 +27,54 @@
|
||||
"name" : "unsigned int",
|
||||
"referenced_type" : "type-6",
|
||||
"self_type" : "type-6",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 0,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "void",
|
||||
"name" : "void",
|
||||
"referenced_type" : "type-10",
|
||||
"self_type" : "type-10",
|
||||
"size" : 0,
|
||||
"source_file" : ""
|
||||
"self_type" : "type-10"
|
||||
}
|
||||
],
|
||||
"elf_functions" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_Z26test_virtual_function_callP12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12NotReferenced"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker11SpeakLouderEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker9SpeakLoudEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
}
|
||||
],
|
||||
"elf_objects" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV17HighVolumeSpeaker"
|
||||
}
|
||||
],
|
||||
@@ -139,137 +116,110 @@
|
||||
"functions" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLouder",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::CreateSuperSpeaker",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-9",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLoud",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-8",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::BadPractice",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
},
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-3"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-12",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
}
|
||||
],
|
||||
"global_vars" : [],
|
||||
@@ -317,9 +267,7 @@
|
||||
"record_types" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" : [],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
@@ -329,7 +277,6 @@
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "SuperSpeaker",
|
||||
"name" : "SuperSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -337,61 +284,42 @@
|
||||
"self_type" : "type-1",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS12SuperSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" : [],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "HighVolumeSpeaker",
|
||||
"name" : "HighVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -399,75 +327,53 @@
|
||||
"self_type" : "type-11",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS17HighVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI17HighVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_uint_t",
|
||||
"field_offset" : 96,
|
||||
"referenced_type" : "type-6"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_float_star",
|
||||
"field_offset" : 128,
|
||||
"referenced_type" : "type-7"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "LowVolumeSpeaker",
|
||||
"name" : "LowVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -475,43 +381,27 @@
|
||||
"self_type" : "type-5",
|
||||
"size" : 24,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS16LowVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
|
||||
}
|
||||
|
||||
@@ -4,25 +4,20 @@
|
||||
[
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "float",
|
||||
"name" : "float",
|
||||
"referenced_type" : "type-3",
|
||||
"self_type" : "type-3",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : true,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "int",
|
||||
"name" : "int",
|
||||
"referenced_type" : "type-2",
|
||||
"self_type" : "type-2",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
@@ -32,72 +27,54 @@
|
||||
"name" : "unsigned int",
|
||||
"referenced_type" : "type-6",
|
||||
"self_type" : "type-6",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 0,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "void",
|
||||
"name" : "void",
|
||||
"referenced_type" : "type-10",
|
||||
"self_type" : "type-10",
|
||||
"size" : 0,
|
||||
"source_file" : ""
|
||||
"self_type" : "type-10"
|
||||
}
|
||||
],
|
||||
"elf_functions" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_Z26test_virtual_function_callP12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12NotReferenced"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker11SpeakLouderEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker9SpeakLoudEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
}
|
||||
],
|
||||
"elf_objects" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV17HighVolumeSpeaker"
|
||||
}
|
||||
],
|
||||
@@ -139,137 +116,110 @@
|
||||
"functions" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLouder",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::CreateSuperSpeaker",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-9",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLoud",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-8",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::BadPractice",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
},
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-3"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-12",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
}
|
||||
],
|
||||
"global_vars" : [],
|
||||
@@ -317,9 +267,7 @@
|
||||
"record_types" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" : [],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
@@ -329,7 +277,6 @@
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "SuperSpeaker",
|
||||
"name" : "SuperSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -337,61 +284,42 @@
|
||||
"self_type" : "type-1",
|
||||
"size" : 8,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS12SuperSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" : [],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "HighVolumeSpeaker",
|
||||
"name" : "HighVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -399,75 +327,53 @@
|
||||
"self_type" : "type-11",
|
||||
"size" : 8,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS17HighVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI17HighVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 4,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_uint_t",
|
||||
"field_offset" : 64,
|
||||
"referenced_type" : "type-6"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_float_star",
|
||||
"field_offset" : 96,
|
||||
"referenced_type" : "type-7"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "LowVolumeSpeaker",
|
||||
"name" : "LowVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -475,43 +381,27 @@
|
||||
"self_type" : "type-5",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS16LowVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
|
||||
}
|
||||
|
||||
@@ -4,25 +4,20 @@
|
||||
[
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "float",
|
||||
"name" : "float",
|
||||
"referenced_type" : "type-3",
|
||||
"self_type" : "type-3",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
"is_integral" : true,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "int",
|
||||
"name" : "int",
|
||||
"referenced_type" : "type-2",
|
||||
"self_type" : "type-2",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 4,
|
||||
@@ -32,72 +27,54 @@
|
||||
"name" : "unsigned int",
|
||||
"referenced_type" : "type-6",
|
||||
"self_type" : "type-6",
|
||||
"size" : 4,
|
||||
"source_file" : ""
|
||||
"size" : 4
|
||||
},
|
||||
{
|
||||
"alignment" : 0,
|
||||
"is_integral" : false,
|
||||
"is_unsigned" : false,
|
||||
"linker_set_key" : "void",
|
||||
"name" : "void",
|
||||
"referenced_type" : "type-10",
|
||||
"self_type" : "type-10",
|
||||
"size" : 0,
|
||||
"source_file" : ""
|
||||
"self_type" : "type-10"
|
||||
}
|
||||
],
|
||||
"elf_functions" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_Z26test_virtual_function_callP12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12NotReferenced"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker11SpeakLouderEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN12SuperSpeaker9SpeakLoudEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker11BadPracticeEf"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
}
|
||||
],
|
||||
"elf_objects" :
|
||||
[
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"binding" : "global",
|
||||
"name" : "_ZTV17HighVolumeSpeaker"
|
||||
}
|
||||
],
|
||||
@@ -139,137 +116,110 @@
|
||||
"functions" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLouder",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker11SpeakLouderEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::CreateSuperSpeaker",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker18CreateSuperSpeakerEi",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-9",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "SuperSpeaker::SpeakLoud",
|
||||
"linker_set_key" : "_ZN12SuperSpeaker9SpeakLoudEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-9"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-8",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "LowVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN16LowVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-4"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::BadPractice",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker11BadPracticeEf",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
},
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : false,
|
||||
"referenced_type" : "type-3"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-12",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Speak",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker5SpeakEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"function_name" : "HighVolumeSpeaker::Listen",
|
||||
"linker_set_key" : "_ZN17HighVolumeSpeaker6ListenEv",
|
||||
"parameters" :
|
||||
[
|
||||
{
|
||||
"default_arg" : false,
|
||||
"is_this_ptr" : true,
|
||||
"referenced_type" : "type-12"
|
||||
}
|
||||
],
|
||||
"return_type" : "type-10",
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : []
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h"
|
||||
}
|
||||
],
|
||||
"global_vars" : [],
|
||||
@@ -317,9 +267,7 @@
|
||||
"record_types" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" : [],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
@@ -329,7 +277,6 @@
|
||||
"referenced_type" : "type-2"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "SuperSpeaker",
|
||||
"name" : "SuperSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -337,61 +284,42 @@
|
||||
"self_type" : "type-1",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/abstract_class.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS12SuperSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI12SuperSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : true,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN12SuperSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" : [],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "HighVolumeSpeaker",
|
||||
"name" : "HighVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -399,75 +327,53 @@
|
||||
"self_type" : "type-11",
|
||||
"size" : 16,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/high_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS17HighVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI17HighVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN17HighVolumeSpeakerD0Ev"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"alignment" : 8,
|
||||
"base_specifiers" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"is_virtual" : false,
|
||||
"referenced_type" : "type-1"
|
||||
}
|
||||
],
|
||||
"fields" :
|
||||
[
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_uint_t",
|
||||
"field_offset" : 96,
|
||||
"referenced_type" : "type-6"
|
||||
},
|
||||
{
|
||||
"access" : "public",
|
||||
"field_name" : "speaker_float_star",
|
||||
"field_offset" : 128,
|
||||
"referenced_type" : "type-7"
|
||||
}
|
||||
],
|
||||
"is_anonymous" : false,
|
||||
"linker_set_key" : "LowVolumeSpeaker",
|
||||
"name" : "LowVolumeSpeaker",
|
||||
"record_kind" : "class",
|
||||
@@ -475,43 +381,27 @@
|
||||
"self_type" : "type-5",
|
||||
"size" : 24,
|
||||
"source_file" : "/development/vndk/tools/header-checker/tests/integration/cpp/gold/include/low_volume_speaker.h",
|
||||
"template_args" : [],
|
||||
"unique_id" : "_ZTS16LowVolumeSpeaker",
|
||||
"vtable_components" :
|
||||
[
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "offset_to_top",
|
||||
"mangled_component_name" : ""
|
||||
"kind" : "offset_to_top"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "rtti",
|
||||
"mangled_component_name" : "_ZTI16LowVolumeSpeaker"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker5SpeakEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "function_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeaker6ListenEv"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "complete_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD1Ev"
|
||||
},
|
||||
{
|
||||
"component_value" : 0,
|
||||
"is_pure" : false,
|
||||
"kind" : "deleting_dtor_pointer",
|
||||
"mangled_component_name" : "_ZN16LowVolumeSpeakerD0Ev"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user