Skip to content

Commit 2e82a17

Browse files
author
Michael Tyler Maitland
committed
[mlir][value] Fix the ASAN error introduced in #142084
1 parent 87fd352 commit 2e82a17

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

mlir/unittests/IR/ValueTest.cpp

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,53 +38,65 @@ TEST(ValueTest, getNumUses) {
3838
Value v0 = op0->getResult(0);
3939
EXPECT_EQ(v0.getNumUses(), (unsigned)0);
4040

41-
createOp(&context, {v0}, builder.getIntegerType(16));
41+
Operation *op1 = createOp(&context, {v0}, builder.getIntegerType(16));
4242
EXPECT_EQ(v0.getNumUses(), (unsigned)1);
4343

44-
createOp(&context, {v0, v0}, builder.getIntegerType(16));
44+
Operation *op2 = createOp(&context, {v0, v0}, builder.getIntegerType(16));
4545
EXPECT_EQ(v0.getNumUses(), (unsigned)3);
46+
47+
op2->destroy();
48+
op1->destroy();
49+
op0->destroy();
4650
}
4751

4852
TEST(ValueTest, hasNUses) {
4953
MLIRContext context;
5054
Builder builder(&context);
5155

52-
Operation *op =
56+
Operation *op0 =
5357
createOp(&context, /*operands=*/std::nullopt, builder.getIntegerType(16));
54-
Value v0 = op->getResult(0);
58+
Value v0 = op0->getResult(0);
5559
EXPECT_TRUE(v0.hasNUses(0));
5660
EXPECT_FALSE(v0.hasNUses(1));
5761

58-
createOp(&context, {v0}, builder.getIntegerType(16));
62+
Operation *op1 = createOp(&context, {v0}, builder.getIntegerType(16));
5963
EXPECT_FALSE(v0.hasNUses(0));
6064
EXPECT_TRUE(v0.hasNUses(1));
6165

62-
createOp(&context, {v0, v0}, builder.getIntegerType(16));
66+
Operation *op2 = createOp(&context, {v0, v0}, builder.getIntegerType(16));
6367
EXPECT_FALSE(v0.hasNUses(0));
6468
EXPECT_FALSE(v0.hasNUses(1));
6569
EXPECT_TRUE(v0.hasNUses(3));
70+
71+
op2->destroy();
72+
op1->destroy();
73+
op0->destroy();
6674
}
6775

6876
TEST(ValueTest, hasNUsesOrMore) {
6977
MLIRContext context;
7078
Builder builder(&context);
7179

72-
Operation *op =
80+
Operation *op0 =
7381
createOp(&context, /*operands=*/std::nullopt, builder.getIntegerType(16));
74-
Value v0 = op->getResult(0);
82+
Value v0 = op0->getResult(0);
7583
EXPECT_TRUE(v0.hasNUsesOrMore(0));
7684
EXPECT_FALSE(v0.hasNUsesOrMore(1));
7785

78-
createOp(&context, {v0}, builder.getIntegerType(16));
86+
Operation *op1 = createOp(&context, {v0}, builder.getIntegerType(16));
7987
EXPECT_TRUE(v0.hasNUsesOrMore(0));
8088
EXPECT_TRUE(v0.hasNUsesOrMore(1));
8189
EXPECT_FALSE(v0.hasNUsesOrMore(2));
8290

83-
createOp(&context, {v0, v0}, builder.getIntegerType(16));
91+
Operation *op2 = createOp(&context, {v0, v0}, builder.getIntegerType(16));
8492
EXPECT_TRUE(v0.hasNUsesOrMore(0));
8593
EXPECT_TRUE(v0.hasNUsesOrMore(1));
8694
EXPECT_TRUE(v0.hasNUsesOrMore(3));
8795
EXPECT_FALSE(v0.hasNUsesOrMore(4));
96+
97+
op2->destroy();
98+
op1->destroy();
99+
op0->destroy();
88100
}
89101

90102
} // end anonymous namespace

0 commit comments

Comments
 (0)