resolver: Limit the number of parameters to 255

See: https://github.com/gpuweb/gpuweb/issues/1959

Fixed: chromium:1228642
Change-Id: Iadedd0a1396ebb6a006caa99e0931a92eb2c008e
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/58390
Commit-Queue: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index dd37815..8288a3f 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -1388,6 +1388,11 @@
     }
   }
 
+  if (func->params().size() > 255) {
+    AddError("functions may declare at most 255 parameters", func->source());
+    return false;
+  }
+
   for (auto* param : func->params()) {
     if (!ValidateFunctionParameter(func, variable_to_info_.at(param))) {
       return false;