[spirv-reader][ir] Error on non-array stride.
Error if an `ArrayStride` decoration is set on a non-array type.
Bug: 391482902
Change-Id: I63cd33cf207c71ee12f3d790caa694f33859f034
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/247936
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/spirv/reader/parser/parser.cc b/src/tint/lang/spirv/reader/parser/parser.cc
index 8ed6a027..994df0d 100644
--- a/src/tint/lang/spirv/reader/parser/parser.cc
+++ b/src/tint/lang/spirv/reader/parser/parser.cc
@@ -554,6 +554,11 @@
if (set_as_storage_buffer) {
TINT_ASSERT(type->kind() == spvtools::opt::analysis::Type::kStruct);
}
+ // ArrayStride is only handled on the array type for now
+ if (array_stride > 0) {
+ TINT_ASSERT(type->kind() == spvtools::opt::analysis::Type::kArray ||
+ type->kind() == spvtools::opt::analysis::Type::kRuntimeArray);
+ }
switch (type->kind()) {
case spvtools::opt::analysis::Type::kVoid: {