writer/msl: Add TINT_UNIMPLEMENTED() for module-scope vars

Module scope variables of the private and workgroup storage class are
not currently implemeted.

Change-Id: Ibb73faec5b5bcb11199e07ba4d7aa4df9c875450
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/48221
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/writer/msl/generator_impl.cc b/src/writer/msl/generator_impl.cc
index 74e05e4..b50c263 100644
--- a/src/writer/msl/generator_impl.cc
+++ b/src/writer/msl/generator_impl.cc
@@ -96,11 +96,22 @@
   }
 
   for (auto* var : program_->AST().GlobalVariables()) {
-    if (!var->is_const()) {
-      continue;
-    }
-    if (!EmitProgramConstVariable(var)) {
-      return false;
+    if (var->is_const()) {
+      if (!EmitProgramConstVariable(var)) {
+        return false;
+      }
+    } else {
+      auto* sem = program_->Sem().Get(var);
+      switch (sem->StorageClass()) {
+        case ast::StorageClass::kPrivate:
+        case ast::StorageClass::kWorkgroup:
+          TINT_UNIMPLEMENTED(diagnostics_)
+              << "crbug.com/tint/726: module-scope private and workgroup "
+                 "variables not yet implemented";
+          break;
+        default:
+          break;  // Handled by another code path
+      }
     }
   }