GLSL: emit [] for runtime-sized arrays, not [0].
Bug: tint:1262
Change-Id: Ic58729f075353f957c5d974c742b531e1e2cf518
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/67940
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index 0909adc..e16b3d7 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -2310,7 +2310,11 @@
}
}
for (uint32_t size : sizes) {
- out << "[" << size << "]";
+ if (size > 0) {
+ out << "[" << size << "]";
+ } else {
+ out << "[]";
+ }
}
} else if (type->Is<sem::Bool>()) {
out << "bool";
diff --git a/src/writer/glsl/generator_impl_sanitizer_test.cc b/src/writer/glsl/generator_impl_sanitizer_test.cc
index b85bde6..2324793 100644
--- a/src/writer/glsl/generator_impl_sanitizer_test.cc
+++ b/src/writer/glsl/generator_impl_sanitizer_test.cc
@@ -53,7 +53,7 @@
layout (binding = 1) buffer my_struct_1 {
- float a[0];
+ float a[];
} b;
void a_func() {
@@ -105,7 +105,7 @@
layout (binding = 1) buffer my_struct_1 {
float z;
- float a[0];
+ float a[];
} b;
void a_func() {
@@ -158,7 +158,7 @@
layout (binding = 1) buffer my_struct_1 {
- float a[0];
+ float a[];
} b;
void a_func() {