Re-enable spirv-cross fuzzers

Roll third_party/shaderc/ 24536bdd3..1d6155d86 (1 commit)

https://chromium.googlesource.com/external/github.com/google/shaderc/+log/24536bdd3cff..1d6155d8679a

$ git log 24536bdd3..1d6155d86 --date=short --no-merges --format='%ad %ae %s'
2019-11-27 rharrison Moving spirv-cross dep from Dawn into shaderc (#911)

Created with:
  roll-dep third_party/shaderc

BUG=dawn:285

Change-Id: I47d202166f9e34c88e7aad75d6a3c8aa9a7d6499
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14120
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 26cdf68..68e63d1 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1210,6 +1210,9 @@
 group("dawn_fuzzers") {
   testonly = true
   deps = [
+    "src/fuzzers:dawn_spirv_cross_glsl_fast_fuzzer",
+    "src/fuzzers:dawn_spirv_cross_hlsl_fast_fuzzer",
+    "src/fuzzers:dawn_spirv_cross_msl_fast_fuzzer",
     "src/fuzzers:dawn_wire_server_and_frontend_fuzzer",
   ]
 }
diff --git a/DEPS b/DEPS
index 185abb8..f0d8909 100644
--- a/DEPS
+++ b/DEPS
@@ -69,7 +69,7 @@
     'condition': 'dawn_standalone',
   },
   'third_party/shaderc': {
-    'url': '{chromium_git}/external/github.com/google/shaderc@24536bdd3cff61dffefdbe2a23cb854785cbb168',
+    'url': '{chromium_git}/external/github.com/google/shaderc@1d6155d8679a7775f7323cbb356cfd9e63400256',
     'condition': 'dawn_standalone',
   },
 
diff --git a/src/fuzzers/BUILD.gn b/src/fuzzers/BUILD.gn
index 6617938..57bdcf3 100644
--- a/src/fuzzers/BUILD.gn
+++ b/src/fuzzers/BUILD.gn
@@ -69,6 +69,55 @@
   }
 }
 
+static_library("dawn_spirv_cross_fuzzer_common") {
+  sources = [
+    "DawnSPIRVCrossFuzzer.cpp",
+    "DawnSPIRVCrossFuzzer.h",
+  ]
+  public_deps = [
+    "${dawn_shaderc_dir}:libshaderc_spvc",
+  ]
+}
+
+# TODO(rharrison): Remove asan_options once signal trap is no longer
+#                  needed.
+# Uses Dawn specific options and varies input data
+dawn_fuzzer_test("dawn_spirv_cross_glsl_fast_fuzzer") {
+  sources = [
+    "DawnSPIRVCrossGLSLFastFuzzer.cpp",
+  ]
+  deps = [
+    ":dawn_spirv_cross_fuzzer_common",
+  ]
+  asan_options = [ "allow_user_segv_handler=1" ]
+}
+
+# TODO(rharrison): Remove asan_options once signal trap is no longer
+#                  needed.
+# Uses Dawn specific options and varies input data
+dawn_fuzzer_test("dawn_spirv_cross_hlsl_fast_fuzzer") {
+  sources = [
+    "DawnSPIRVCrossHLSLFastFuzzer.cpp",
+  ]
+  deps = [
+    ":dawn_spirv_cross_fuzzer_common",
+  ]
+  asan_options = [ "allow_user_segv_handler=1" ]
+}
+
+# TODO(rharrison): Remove asan_options once signal trap is no longer
+#                  needed.
+# Uses Dawn specific options and varies input data
+dawn_fuzzer_test("dawn_spirv_cross_msl_fast_fuzzer") {
+  sources = [
+    "DawnSPIRVCrossMSLFastFuzzer.cpp",
+  ]
+  deps = [
+    ":dawn_spirv_cross_fuzzer_common",
+  ]
+  asan_options = [ "allow_user_segv_handler=1" ]
+}
+
 dawn_fuzzer_test("dawn_wire_server_and_frontend_fuzzer") {
   sources = [
     "DawnWireServerAndFrontendFuzzer.cpp",