Merge "Move DiffKind enum from IRDiffDumper to DiffMessageIR."
diff --git a/vndk/tools/header-checker/header-abi-diff/src/abi_diff.cpp b/vndk/tools/header-checker/header-abi-diff/src/abi_diff.cpp
index 7d21566..2968f40 100644
--- a/vndk/tools/header-checker/header-abi-diff/src/abi_diff.cpp
+++ b/vndk/tools/header-checker/header-abi-diff/src/abi_diff.cpp
@@ -145,7 +145,7 @@
ir_diff_dumper) &&
PopulateCommonElements(old_ud_types_map, new_ud_types_map, old_types_map,
new_types_map, ir_diff_dumper,
- abi_util::IRDiffDumper::Unreferenced);
+ abi_util::DiffMessageIR::Unreferenced);
}
template <typename T, typename ElfSymbolType>
@@ -182,7 +182,7 @@
ir_diff_dumper) ||
!PopulateCommonElements(old_exportables_map, new_exportables_map,
old_types_map, new_types_map, ir_diff_dumper,
- abi_util::IRDiffDumper::Referenced)) {
+ abi_util::DiffMessageIR::Referenced)) {
llvm::errs() << "Diffing dynsym exportables failed\n";
return false;
}
@@ -204,7 +204,7 @@
abi_util::IRDiffDumper *ir_diff_dumper) {
if (!PopulateRemovedElements(
old_elements_map, new_elements_map, new_elf_map, ir_diff_dumper,
- abi_util::IRDiffDumper::Removed) ||
+ abi_util::DiffMessageIR::Removed) ||
!PopulateRemovedElements(new_elements_map, old_elements_map, old_elf_map,
ir_diff_dumper,
abi_util::IRDiffDumper::DiffKind::Added)) {
diff --git a/vndk/tools/header-checker/header-abi-diff/src/abi_diff_wrappers.cpp b/vndk/tools/header-checker/header-abi-diff/src/abi_diff_wrappers.cpp
index e9a0047..34b9642 100644
--- a/vndk/tools/header-checker/header-abi-diff/src/abi_diff_wrappers.cpp
+++ b/vndk/tools/header-checker/header-abi-diff/src/abi_diff_wrappers.cpp
@@ -92,7 +92,7 @@
DiffStatus DiffWrapperBase::CompareEnumTypes(
const abi_util::EnumTypeIR *old_type, const abi_util::EnumTypeIR *new_type,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
if (old_type->GetName() != new_type->GetName()) {
return DiffStatus::direct_diff;
}
@@ -161,7 +161,7 @@
const abi_util::RecordFieldIR *old_field,
const abi_util::RecordFieldIR *new_field,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
if (old_field->GetOffset() != new_field->GetOffset() ||
// TODO: Should this be an inquality check instead ? Some compilers can
// make signatures dependant on absolute values of access specifiers.
@@ -181,7 +181,7 @@
const std::vector<abi_util::RecordFieldIR> &old_fields,
const std::vector<abi_util::RecordFieldIR> &new_fields,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
std::pair<std::vector<abi_util::RecordFieldDiffIR>,
std::vector<const abi_util::RecordFieldIR *>> diffed_and_removed_fields;
std::map<std::string, const abi_util::RecordFieldIR *> old_fields_map;
@@ -247,7 +247,7 @@
const std::vector<abi_util::CXXBaseSpecifierIR> &old_base_specifiers,
const std::vector<abi_util::CXXBaseSpecifierIR> &new_base_specifiers,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
if (old_base_specifiers.size() != new_base_specifiers.size()) {
return false;
}
@@ -270,7 +270,7 @@
const std::vector<abi_util::TemplateElementIR> &old_template_elements,
const std::vector<abi_util::TemplateElementIR> &new_template_elements,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
uint32_t old_template_size = old_template_elements.size();
assert(old_template_size == new_template_elements.size());
uint32_t i = 0;
@@ -290,7 +290,7 @@
const abi_util::RecordTypeIR *old_type,
const abi_util::RecordTypeIR *new_type,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
auto record_type_diff_ir = std::make_unique<abi_util::RecordTypeDiffIR>();
// Compare names.
if (old_type->GetName() != new_type->GetName()) {
@@ -352,7 +352,7 @@
const abi_util::LvalueReferenceTypeIR *old_type,
const abi_util::LvalueReferenceTypeIR *new_type,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
return CompareAndDumpTypeDiff(old_type->GetReferencedType(),
new_type->GetReferencedType(),
type_queue, diff_kind);
@@ -362,7 +362,7 @@
const abi_util::RvalueReferenceTypeIR *old_type,
const abi_util::RvalueReferenceTypeIR *new_type,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
return CompareAndDumpTypeDiff(old_type->GetReferencedType(),
new_type->GetReferencedType(),
type_queue, diff_kind);
@@ -372,7 +372,7 @@
const abi_util::QualifiedTypeIR *old_type,
const abi_util::QualifiedTypeIR *new_type,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
// If all the qualifiers are not the same, return direct_diff, else
// recursively compare the unqualified types.
if (old_type->IsConst() != new_type->IsConst() ||
@@ -389,7 +389,7 @@
const abi_util::PointerTypeIR *old_type,
const abi_util::PointerTypeIR *new_type,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
// The following need to be the same for two pointer types to be considered
// equivalent:
// 1) Number of pointer indirections are the same.
@@ -420,7 +420,7 @@
const std::vector<abi_util::ParamIR> &old_parameters,
const std::vector<abi_util::ParamIR> &new_parameters,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
size_t old_parameters_size = old_parameters.size();
if (old_parameters_size != new_parameters.size()) {
return DiffStatus::direct_diff;
@@ -444,7 +444,7 @@
DiffStatus DiffWrapperBase::CompareAndDumpTypeDiff(
const abi_util::TypeIR *old_type, const abi_util::TypeIR *new_type,
abi_util::LinkableMessageKind kind, std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
if (kind == abi_util::LinkableMessageKind::BuiltinTypeKind) {
return CompareBuiltinTypes(
static_cast<const abi_util::BuiltinTypeIR *>(old_type),
@@ -508,7 +508,7 @@
DiffStatus DiffWrapperBase::CompareAndDumpTypeDiff(
const std::string &old_type_str, const std::string &new_type_str,
std::deque<std::string> *type_queue,
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
// If either of the types are not found in their respective maps, the type
// was not exposed in a public header and we do a simple string comparison.
// Any diff found using a simple string comparison will be a direct diff.
@@ -553,7 +553,7 @@
template <>
bool DiffWrapper<abi_util::RecordTypeIR>::DumpDiff(
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
std::deque<std::string> type_queue;
if (oldp_->GetName() != newp_->GetName()) {
llvm::errs() << "Comparing two different unreferenced records\n";
@@ -568,7 +568,7 @@
template <>
bool DiffWrapper<abi_util::EnumTypeIR>::DumpDiff(
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
std::deque<std::string> type_queue;
if (oldp_->GetName() != newp_->GetName()) {
llvm::errs() << "Comparing two different unreferenced enums\n";
@@ -583,7 +583,7 @@
template <>
bool DiffWrapper<abi_util::GlobalVarIR>::DumpDiff(
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
std::deque<std::string> type_queue;
type_queue.push_back(oldp_->GetName());
DiffStatus type_diff = CompareAndDumpTypeDiff(oldp_->GetReferencedType(),
@@ -602,7 +602,7 @@
template <>
bool DiffWrapper<abi_util::FunctionIR>::DumpDiff(
- abi_util::IRDiffDumper::DiffKind diff_kind) {
+ abi_util::DiffMessageIR::DiffKind diff_kind) {
std::deque<std::string> type_queue;
type_queue.push_back(oldp_->GetName());
DiffStatus param_diffs = CompareFunctionParameters(oldp_->GetParameters(),
diff --git a/vndk/tools/header-checker/header-abi-util/include/ir_representation.h b/vndk/tools/header-checker/header-abi-util/include/ir_representation.h
index a581ba1..97dd008 100644
--- a/vndk/tools/header-checker/header-abi-util/include/ir_representation.h
+++ b/vndk/tools/header-checker/header-abi-util/include/ir_representation.h
@@ -781,6 +781,15 @@
class DiffMessageIR {
public:
+
+ enum DiffKind {
+ Extension, // Applicable for enums.
+ Added,
+ Removed,
+ Referenced,
+ Unreferenced
+ };
+
virtual LinkableMessageKind Kind() const = 0;
void SetName(const std::string &name) {
name_ = name;
@@ -1085,13 +1094,7 @@
class IRDiffDumper {
public:
- enum DiffKind {
- Extension, // Applicable for enums.
- Added,
- Removed,
- Referenced,
- Unreferenced
- };
+ typedef DiffMessageIR::DiffKind DiffKind;
IRDiffDumper(const std::string &dump_path) : dump_path_(dump_path) { }