diff --git a/src/PrivateAnalyzer/private_arrays_search.cpp b/src/PrivateAnalyzer/private_arrays_search.cpp index f8ab229..ce70854 100644 --- a/src/PrivateAnalyzer/private_arrays_search.cpp +++ b/src/PrivateAnalyzer/private_arrays_search.cpp @@ -508,13 +508,13 @@ AccessingSet AccessingSet::Diff(const AccessingSet& secondSet) const return uncovered; } -bool operator==(const ArrayDimension& lhs, const ArrayDimension& rhs) +bool operator!=(const ArrayDimension& lhs, const ArrayDimension& rhs) { - return lhs.start == rhs.start && lhs.step == rhs.step && lhs.tripCount == rhs.tripCount; + return !(lhs.start == rhs.start && lhs.step == rhs.step && lhs.tripCount == rhs.tripCount); } -bool operator==(const AccessingSet& lhs, const AccessingSet& rhs) +bool operator!=(const AccessingSet& lhs, const AccessingSet& rhs) { for (size_t i = 0; i < lhs.allElements.size(); i++) { @@ -522,11 +522,27 @@ bool operator==(const AccessingSet& lhs, const AccessingSet& rhs) { if (lhs.allElements[i][j] != rhs.allElements[i][j]) { - return false; + return true; } } } - return true; + return false; +} + +bool operator!=(const ArrayAccessingIndexes& lhs, const ArrayAccessingIndexes& rhs) +{ + if(lhs.size() != rhs.size()) + { + return true; + } + for(auto& [key, value]: lhs) + { + if(rhs.find(key) == rhs.end()) + { + return true; + } + } + return false; } void Collapse(Region* region) diff --git a/src/PrivateAnalyzer/private_arrays_search.h b/src/PrivateAnalyzer/private_arrays_search.h index f8508f3..983f3dc 100644 --- a/src/PrivateAnalyzer/private_arrays_search.h +++ b/src/PrivateAnalyzer/private_arrays_search.h @@ -30,7 +30,7 @@ class AccessingSet { bool ContainsElement(const vector& element) const; void FindCoveredBy(const vector& element, vector>& result) const; void FindUncovered(const vector& element, vector>& result) const; - friend bool operator==(const AccessingSet& lhs, const AccessingSet& rhs); + friend bool operator!=(const AccessingSet& lhs, const AccessingSet& rhs); }; using ArrayAccessingIndexes = map;