Skip to content

Commit c08a8fd

Browse files
Jayant ChowdharyGerrit Code Review
authored andcommitted
Merge "Move DiffKind enum from IRDiffDumper to DiffMessageIR."
2 parents f877bd1 + 1b0112b commit c08a8fd

File tree

3 files changed

+30
-27
lines changed

3 files changed

+30
-27
lines changed

vndk/tools/header-checker/header-abi-diff/src/abi_diff.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ bool HeaderAbiDiff::CollectUserDefinedTypesInternal(
145145
ir_diff_dumper) &&
146146
PopulateCommonElements(old_ud_types_map, new_ud_types_map, old_types_map,
147147
new_types_map, ir_diff_dumper,
148-
abi_util::IRDiffDumper::Unreferenced);
148+
abi_util::DiffMessageIR::Unreferenced);
149149
}
150150

151151
template <typename T, typename ElfSymbolType>
@@ -182,7 +182,7 @@ bool HeaderAbiDiff::CollectDynsymExportables(
182182
ir_diff_dumper) ||
183183
!PopulateCommonElements(old_exportables_map, new_exportables_map,
184184
old_types_map, new_types_map, ir_diff_dumper,
185-
abi_util::IRDiffDumper::Referenced)) {
185+
abi_util::DiffMessageIR::Referenced)) {
186186
llvm::errs() << "Diffing dynsym exportables failed\n";
187187
return false;
188188
}
@@ -204,7 +204,7 @@ bool HeaderAbiDiff::Collect(
204204
abi_util::IRDiffDumper *ir_diff_dumper) {
205205
if (!PopulateRemovedElements(
206206
old_elements_map, new_elements_map, new_elf_map, ir_diff_dumper,
207-
abi_util::IRDiffDumper::Removed) ||
207+
abi_util::DiffMessageIR::Removed) ||
208208
!PopulateRemovedElements(new_elements_map, old_elements_map, old_elf_map,
209209
ir_diff_dumper,
210210
abi_util::IRDiffDumper::DiffKind::Added)) {

vndk/tools/header-checker/header-abi-diff/src/abi_diff_wrappers.cpp

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ void DiffWrapperBase::CompareEnumFields(
9292
DiffStatus DiffWrapperBase::CompareEnumTypes(
9393
const abi_util::EnumTypeIR *old_type, const abi_util::EnumTypeIR *new_type,
9494
std::deque<std::string> *type_queue,
95-
abi_util::IRDiffDumper::DiffKind diff_kind) {
95+
abi_util::DiffMessageIR::DiffKind diff_kind) {
9696
if (old_type->GetName() != new_type->GetName()) {
9797
return DiffStatus::direct_diff;
9898
}
@@ -161,7 +161,7 @@ DiffWrapperBase::CompareCommonRecordFields(
161161
const abi_util::RecordFieldIR *old_field,
162162
const abi_util::RecordFieldIR *new_field,
163163
std::deque<std::string> *type_queue,
164-
abi_util::IRDiffDumper::DiffKind diff_kind) {
164+
abi_util::DiffMessageIR::DiffKind diff_kind) {
165165
if (old_field->GetOffset() != new_field->GetOffset() ||
166166
// TODO: Should this be an inquality check instead ? Some compilers can
167167
// make signatures dependant on absolute values of access specifiers.
@@ -181,7 +181,7 @@ DiffWrapperBase::CompareRecordFields(
181181
const std::vector<abi_util::RecordFieldIR> &old_fields,
182182
const std::vector<abi_util::RecordFieldIR> &new_fields,
183183
std::deque<std::string> *type_queue,
184-
abi_util::IRDiffDumper::DiffKind diff_kind) {
184+
abi_util::DiffMessageIR::DiffKind diff_kind) {
185185
std::pair<std::vector<abi_util::RecordFieldDiffIR>,
186186
std::vector<const abi_util::RecordFieldIR *>> diffed_and_removed_fields;
187187
std::map<std::string, const abi_util::RecordFieldIR *> old_fields_map;
@@ -247,7 +247,7 @@ bool DiffWrapperBase::CompareBaseSpecifiers(
247247
const std::vector<abi_util::CXXBaseSpecifierIR> &old_base_specifiers,
248248
const std::vector<abi_util::CXXBaseSpecifierIR> &new_base_specifiers,
249249
std::deque<std::string> *type_queue,
250-
abi_util::IRDiffDumper::DiffKind diff_kind) {
250+
abi_util::DiffMessageIR::DiffKind diff_kind) {
251251
if (old_base_specifiers.size() != new_base_specifiers.size()) {
252252
return false;
253253
}
@@ -270,7 +270,7 @@ void DiffWrapperBase::CompareTemplateInfo(
270270
const std::vector<abi_util::TemplateElementIR> &old_template_elements,
271271
const std::vector<abi_util::TemplateElementIR> &new_template_elements,
272272
std::deque<std::string> *type_queue,
273-
abi_util::IRDiffDumper::DiffKind diff_kind) {
273+
abi_util::DiffMessageIR::DiffKind diff_kind) {
274274
uint32_t old_template_size = old_template_elements.size();
275275
assert(old_template_size == new_template_elements.size());
276276
uint32_t i = 0;
@@ -290,7 +290,7 @@ DiffStatus DiffWrapperBase::CompareRecordTypes(
290290
const abi_util::RecordTypeIR *old_type,
291291
const abi_util::RecordTypeIR *new_type,
292292
std::deque<std::string> *type_queue,
293-
abi_util::IRDiffDumper::DiffKind diff_kind) {
293+
abi_util::DiffMessageIR::DiffKind diff_kind) {
294294
auto record_type_diff_ir = std::make_unique<abi_util::RecordTypeDiffIR>();
295295
// Compare names.
296296
if (old_type->GetName() != new_type->GetName()) {
@@ -352,7 +352,7 @@ DiffStatus DiffWrapperBase::CompareLvalueReferenceTypes(
352352
const abi_util::LvalueReferenceTypeIR *old_type,
353353
const abi_util::LvalueReferenceTypeIR *new_type,
354354
std::deque<std::string> *type_queue,
355-
abi_util::IRDiffDumper::DiffKind diff_kind) {
355+
abi_util::DiffMessageIR::DiffKind diff_kind) {
356356
return CompareAndDumpTypeDiff(old_type->GetReferencedType(),
357357
new_type->GetReferencedType(),
358358
type_queue, diff_kind);
@@ -362,7 +362,7 @@ DiffStatus DiffWrapperBase::CompareRvalueReferenceTypes(
362362
const abi_util::RvalueReferenceTypeIR *old_type,
363363
const abi_util::RvalueReferenceTypeIR *new_type,
364364
std::deque<std::string> *type_queue,
365-
abi_util::IRDiffDumper::DiffKind diff_kind) {
365+
abi_util::DiffMessageIR::DiffKind diff_kind) {
366366
return CompareAndDumpTypeDiff(old_type->GetReferencedType(),
367367
new_type->GetReferencedType(),
368368
type_queue, diff_kind);
@@ -372,7 +372,7 @@ DiffStatus DiffWrapperBase::CompareQualifiedTypes(
372372
const abi_util::QualifiedTypeIR *old_type,
373373
const abi_util::QualifiedTypeIR *new_type,
374374
std::deque<std::string> *type_queue,
375-
abi_util::IRDiffDumper::DiffKind diff_kind) {
375+
abi_util::DiffMessageIR::DiffKind diff_kind) {
376376
// If all the qualifiers are not the same, return direct_diff, else
377377
// recursively compare the unqualified types.
378378
if (old_type->IsConst() != new_type->IsConst() ||
@@ -389,7 +389,7 @@ DiffStatus DiffWrapperBase::ComparePointerTypes(
389389
const abi_util::PointerTypeIR *old_type,
390390
const abi_util::PointerTypeIR *new_type,
391391
std::deque<std::string> *type_queue,
392-
abi_util::IRDiffDumper::DiffKind diff_kind) {
392+
abi_util::DiffMessageIR::DiffKind diff_kind) {
393393
// The following need to be the same for two pointer types to be considered
394394
// equivalent:
395395
// 1) Number of pointer indirections are the same.
@@ -420,7 +420,7 @@ DiffStatus DiffWrapperBase::CompareFunctionParameters(
420420
const std::vector<abi_util::ParamIR> &old_parameters,
421421
const std::vector<abi_util::ParamIR> &new_parameters,
422422
std::deque<std::string> *type_queue,
423-
abi_util::IRDiffDumper::DiffKind diff_kind) {
423+
abi_util::DiffMessageIR::DiffKind diff_kind) {
424424
size_t old_parameters_size = old_parameters.size();
425425
if (old_parameters_size != new_parameters.size()) {
426426
return DiffStatus::direct_diff;
@@ -444,7 +444,7 @@ DiffStatus DiffWrapperBase::CompareFunctionParameters(
444444
DiffStatus DiffWrapperBase::CompareAndDumpTypeDiff(
445445
const abi_util::TypeIR *old_type, const abi_util::TypeIR *new_type,
446446
abi_util::LinkableMessageKind kind, std::deque<std::string> *type_queue,
447-
abi_util::IRDiffDumper::DiffKind diff_kind) {
447+
abi_util::DiffMessageIR::DiffKind diff_kind) {
448448
if (kind == abi_util::LinkableMessageKind::BuiltinTypeKind) {
449449
return CompareBuiltinTypes(
450450
static_cast<const abi_util::BuiltinTypeIR *>(old_type),
@@ -508,7 +508,7 @@ static DiffStatus CompareDistinctKindMessages(
508508
DiffStatus DiffWrapperBase::CompareAndDumpTypeDiff(
509509
const std::string &old_type_str, const std::string &new_type_str,
510510
std::deque<std::string> *type_queue,
511-
abi_util::IRDiffDumper::DiffKind diff_kind) {
511+
abi_util::DiffMessageIR::DiffKind diff_kind) {
512512
// If either of the types are not found in their respective maps, the type
513513
// was not exposed in a public header and we do a simple string comparison.
514514
// Any diff found using a simple string comparison will be a direct diff.
@@ -553,7 +553,7 @@ DiffStatus DiffWrapperBase::CompareAndDumpTypeDiff(
553553

554554
template <>
555555
bool DiffWrapper<abi_util::RecordTypeIR>::DumpDiff(
556-
abi_util::IRDiffDumper::DiffKind diff_kind) {
556+
abi_util::DiffMessageIR::DiffKind diff_kind) {
557557
std::deque<std::string> type_queue;
558558
if (oldp_->GetName() != newp_->GetName()) {
559559
llvm::errs() << "Comparing two different unreferenced records\n";
@@ -568,7 +568,7 @@ bool DiffWrapper<abi_util::RecordTypeIR>::DumpDiff(
568568

569569
template <>
570570
bool DiffWrapper<abi_util::EnumTypeIR>::DumpDiff(
571-
abi_util::IRDiffDumper::DiffKind diff_kind) {
571+
abi_util::DiffMessageIR::DiffKind diff_kind) {
572572
std::deque<std::string> type_queue;
573573
if (oldp_->GetName() != newp_->GetName()) {
574574
llvm::errs() << "Comparing two different unreferenced enums\n";
@@ -583,7 +583,7 @@ bool DiffWrapper<abi_util::EnumTypeIR>::DumpDiff(
583583

584584
template <>
585585
bool DiffWrapper<abi_util::GlobalVarIR>::DumpDiff(
586-
abi_util::IRDiffDumper::DiffKind diff_kind) {
586+
abi_util::DiffMessageIR::DiffKind diff_kind) {
587587
std::deque<std::string> type_queue;
588588
type_queue.push_back(oldp_->GetName());
589589
DiffStatus type_diff = CompareAndDumpTypeDiff(oldp_->GetReferencedType(),
@@ -602,7 +602,7 @@ bool DiffWrapper<abi_util::GlobalVarIR>::DumpDiff(
602602

603603
template <>
604604
bool DiffWrapper<abi_util::FunctionIR>::DumpDiff(
605-
abi_util::IRDiffDumper::DiffKind diff_kind) {
605+
abi_util::DiffMessageIR::DiffKind diff_kind) {
606606
std::deque<std::string> type_queue;
607607
type_queue.push_back(oldp_->GetName());
608608
DiffStatus param_diffs = CompareFunctionParameters(oldp_->GetParameters(),

vndk/tools/header-checker/header-abi-util/include/ir_representation.h

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,15 @@ class TextFormatToIRReader {
781781

782782
class DiffMessageIR {
783783
public:
784+
785+
enum DiffKind {
786+
Extension, // Applicable for enums.
787+
Added,
788+
Removed,
789+
Referenced,
790+
Unreferenced
791+
};
792+
784793
virtual LinkableMessageKind Kind() const = 0;
785794
void SetName(const std::string &name) {
786795
name_ = name;
@@ -1085,13 +1094,7 @@ class FunctionDiffIR : public DiffMessageIR {
10851094

10861095
class IRDiffDumper {
10871096
public:
1088-
enum DiffKind {
1089-
Extension, // Applicable for enums.
1090-
Added,
1091-
Removed,
1092-
Referenced,
1093-
Unreferenced
1094-
};
1097+
typedef DiffMessageIR::DiffKind DiffKind;
10951098

10961099
IRDiffDumper(const std::string &dump_path) : dump_path_(dump_path) { }
10971100

0 commit comments

Comments
 (0)