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() {