[tint][ir][val] Handle null types in lets when logging errors
Fixes: 376493191
Change-Id: I4cae624927a0e87096a03df217ae521460ca1506
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/213115
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Auto-Submit: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/tint/lang/core/ir/validator.cc b/src/tint/lang/core/ir/validator.cc
index 3720ffc..6cc6af1 100644
--- a/src/tint/lang/core/ir/validator.cc
+++ b/src/tint/lang/core/ir/validator.cc
@@ -2172,9 +2172,12 @@
if (l->Result(0) && l->Value()) {
if (l->Result(0)->Type() != l->Value()->Type()) {
- AddError(l) << "result type " << style::Type(l->Result(0)->Type()->FriendlyName())
- << " does not match value type "
- << style::Type(l->Value()->Type()->FriendlyName());
+ auto result_type_name =
+ l->Result(0)->Type() ? l->Result(0)->Type()->FriendlyName() : "undef";
+ auto value_type_name =
+ l->Value()->Type() ? l->Value()->Type()->FriendlyName() : "undef";
+ AddError(l) << "result type " << style::Type(result_type_name)
+ << " does not match value type " << style::Type(value_type_name);
}
}
}
@@ -2390,8 +2393,8 @@
auto* index = a->Indices()[i];
if (DAWN_UNLIKELY(!index->Type() || !index->Type()->IsIntegerScalar())) {
- err() << "index must be integer, got "
- << (index->Type() ? index->Type()->FriendlyName() : "undefined");
+ auto name = index->Type() ? index->Type()->FriendlyName() : "undef";
+ err() << "index must be integer, got " << name;
return;
}