Skip to content

Commit b8e4053

Browse files
authored
[MLIR][Presburger] Fix bug in Identifier::isEqual assert (#76380)
Make identifiers::isEqual return false instead of failing assertion when identifiers are not equal.
1 parent a384cd5 commit b8e4053

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

mlir/lib/Analysis/Presburger/PresburgerSpace.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ using namespace presburger;
1818
bool Identifier::isEqual(const Identifier &other) const {
1919
if (value == nullptr || other.value == nullptr)
2020
return false;
21-
assert(value == other.value && idType == other.idType &&
22-
"Values of Identifiers are equal but their types do not match.");
21+
assert(value != other.value ||
22+
(value == other.value && idType == other.idType &&
23+
"Values of Identifiers are equal but their types do not match."));
2324
return value == other.value;
2425
}
2526

mlir/unittests/Analysis/Presburger/PresburgerSpaceTest.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,20 @@ TEST(PresburgerSpaceTest, removeVarRangeIdentifier) {
110110
EXPECT_EQ(space.getId(VarKind::Range, 1), Identifier(&identifiers[5]));
111111
}
112112

113+
TEST(PresburgerSpaceTest, IdentifierIsEqual) {
114+
PresburgerSpace space = PresburgerSpace::getRelationSpace(1, 2, 0, 0);
115+
space.resetIds();
116+
117+
int identifiers[2] = {0, 1};
118+
space.getId(VarKind::Domain, 0) = Identifier(&identifiers[0]);
119+
space.getId(VarKind::Range, 0) = Identifier(&identifiers[0]);
120+
space.getId(VarKind::Range, 1) = Identifier(&identifiers[1]);
121+
122+
EXPECT_EQ(space.getId(VarKind::Domain, 0), space.getId(VarKind::Range, 0));
123+
EXPECT_FALSE(
124+
space.getId(VarKind::Range, 0).isEqual(space.getId(VarKind::Range, 1)));
125+
}
126+
113127
TEST(PresburgerSpaceTest, convertVarKind) {
114128
PresburgerSpace space = PresburgerSpace::getRelationSpace(2, 2, 0, 0);
115129
space.resetIds();

0 commit comments

Comments
 (0)