[ir][validation] Update binary tests to mark undef operands
Update the binary validation to emit the operand index for any undef
operands so the highlighting works correctly.
Bug: tint:1952
Change-Id: I793bfcd496b9ecc76269a614ec62d0073cfa81ab
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/139282
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/ir/disassembler.cc b/src/tint/ir/disassembler.cc
index f8e301f..0a747ff 100644
--- a/src/tint/ir/disassembler.cc
+++ b/src/tint/ir/disassembler.cc
@@ -738,9 +738,9 @@
break;
}
out_ << " ";
- EmitValue(b->LHS());
+ EmitOperand(b, b->LHS(), Binary::kLhsOperandOffset);
out_ << ", ";
- EmitValue(b->RHS());
+ EmitOperand(b, b->RHS(), Binary::kRhsOperandOffset);
sm.Store(b);
EmitLine();
diff --git a/src/tint/ir/validate.cc b/src/tint/ir/validate.cc
index d8871b9..3a11860 100644
--- a/src/tint/ir/validate.cc
+++ b/src/tint/ir/validate.cc
@@ -314,10 +314,10 @@
void CheckBinary(ir::Binary* b) {
if (b->LHS() == nullptr) {
- AddError(b, "binary: left operand is undefined");
+ AddError(b, Binary::kLhsOperandOffset, "binary: left operand is undefined");
}
if (b->RHS() == nullptr) {
- AddError(b, "binary: right operand is undefined");
+ AddError(b, Binary::kRhsOperandOffset, "binary: right operand is undefined");
}
if (b->Result() == nullptr) {
AddError(b, "binary: result is undefined");
diff --git a/src/tint/ir/validate_test.cc b/src/tint/ir/validate_test.cc
index 8d696e1..8a8b478 100644
--- a/src/tint/ir/validate_test.cc
+++ b/src/tint/ir/validate_test.cc
@@ -767,9 +767,9 @@
auto res = ir::Validate(mod);
ASSERT_FALSE(res);
- EXPECT_EQ(res.Failure().str(), R"(:3:5 error: binary: left operand is undefined
+ EXPECT_EQ(res.Failure().str(), R"(:3:18 error: binary: left operand is undefined
%2:i32 = add undef, 2i
- ^^^^^^^^^^^^^^^^^^^^^^
+ ^^^^^
:2:3 note: In block
%b1 = block {
@@ -795,9 +795,9 @@
auto res = ir::Validate(mod);
ASSERT_FALSE(res);
- EXPECT_EQ(res.Failure().str(), R"(:3:5 error: binary: right operand is undefined
+ EXPECT_EQ(res.Failure().str(), R"(:3:22 error: binary: right operand is undefined
%2:i32 = add 2i, undef
- ^^^^^^^^^^^^^^^^^^^^^^
+ ^^^^^
:2:3 note: In block
%b1 = block {