Fix implicit fallthrough warnings treated as errors

Ideally we'd use the [[fallthrough]] attribute to silence this, but that
isn't supported until C++17 and we're sticking with C++11 for now.

Bug b/120382288

Change-Id: I98f28e42505ed496b0b35c29a7dc03fca18cf4ff
Reviewed-on: https://swiftshader-review.googlesource.com/c/23128
Reviewed-by: Greg Hartman <ghartman@google.com>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Android.bp b/src/Android.bp
index f246233..9dbc324 100644
--- a/src/Android.bp
+++ b/src/Android.bp
@@ -32,6 +32,7 @@
         "-DNO_SANITIZE_FUNCTION=",
         // FIXME: Use <android/api-level.h> instead?
         "-DANDROID_PLATFORM_SDK_VERSION=10000",
+        "-Wno-implicit-fallthrough",
         "-Wno-unused-parameter",
         "-Wno-unused-local-typedef",
     ],
diff --git a/src/Android.mk b/src/Android.mk
index 5f94583..1c76c7b 100644
--- a/src/Android.mk
+++ b/src/Android.mk
@@ -128,6 +128,7 @@
 	-Wno-unused-value \
 	-Wno-unused-variable \
 	-Wno-implicit-exception-spec-mismatch \
+	-Wno-implicit-fallthrough \
 	-Wno-overloaded-virtual \
 	-Wno-non-virtual-dtor \
 	-Wno-attributes \
diff --git a/src/OpenGL/compiler/Android.mk b/src/OpenGL/compiler/Android.mk
index 07d9b6c..bc9d439 100644
--- a/src/OpenGL/compiler/Android.mk
+++ b/src/OpenGL/compiler/Android.mk
@@ -29,6 +29,7 @@
 	-Wno-unused-parameter \
 	-Wno-unused-variable \
 	-Wno-implicit-exception-spec-mismatch \
+	-Wno-implicit-fallthrough \
 	-Wno-overloaded-virtual \
 	-Wno-attributes \
 	-Wno-unknown-attributes \
diff --git a/src/OpenGL/libEGL/Android.mk b/src/OpenGL/libEGL/Android.mk
index 4ade568..7b52ed6 100644
--- a/src/OpenGL/libEGL/Android.mk
+++ b/src/OpenGL/libEGL/Android.mk
@@ -13,6 +13,7 @@
 	-Wno-unused-function \
 	-Wno-unused-parameter \
 	-Wno-implicit-exception-spec-mismatch \
+	-Wno-implicit-fallthrough \
 	-Wno-overloaded-virtual \
 	-Wno-attributes \
 	-Wno-unknown-attributes \
diff --git a/src/OpenGL/libGLES_CM/Android.mk b/src/OpenGL/libGLES_CM/Android.mk
index 6240d5d..4fb2c47 100644
--- a/src/OpenGL/libGLES_CM/Android.mk
+++ b/src/OpenGL/libGLES_CM/Android.mk
@@ -20,6 +20,7 @@
 	-Wno-unused-parameter \
 	-Wno-unused-variable \
 	-Wno-implicit-exception-spec-mismatch \
+	-Wno-implicit-fallthrough \
 	-Wno-overloaded-virtual \
 	-Wno-attributes \
 	-Wno-unknown-attributes \
diff --git a/src/OpenGL/libGLESv2/Android.mk b/src/OpenGL/libGLESv2/Android.mk
index 2368bd5..a34c9db 100644
--- a/src/OpenGL/libGLESv2/Android.mk
+++ b/src/OpenGL/libGLESv2/Android.mk
@@ -20,6 +20,7 @@
 	-Wno-unused-private-field \
 	-Wno-unused-variable \
 	-Wno-implicit-exception-spec-mismatch \
+	-Wno-implicit-fallthrough \
 	-Wno-overloaded-virtual \
 	-Wno-attributes \
 	-Wno-unknown-attributes \
diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index fd856e5..a58563e 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -5624,6 +5624,8 @@
 	case GL_FLOAT:
 	case GL_HALF_FLOAT_OES:   // GL_OES_vertex_half_float
 	case GL_HALF_FLOAT:
+	case GL_INT:
+	case GL_UNSIGNED_INT:
 		break;
 	case GL_INT_2_10_10_10_REV:
 	case GL_UNSIGNED_INT_2_10_10_10_REV:
@@ -5631,8 +5633,6 @@
 		{
 			return error(GL_INVALID_OPERATION);
 		}
-	case GL_INT:
-	case GL_UNSIGNED_INT:
 		break;
 	default:
 		return error(GL_INVALID_ENUM);
diff --git a/src/Reactor/Android.mk b/src/Reactor/Android.mk
index e21d196..2fe0230 100644
--- a/src/Reactor/Android.mk
+++ b/src/Reactor/Android.mk
@@ -116,6 +116,7 @@
 	-Wno-unused-lambda-capture \
 	-Wno-unused-parameter \
 	-Wno-implicit-exception-spec-mismatch \
+	-Wno-implicit-fallthrough \
 	-Wno-overloaded-virtual \
 	-Wno-non-virtual-dtor \
 	-Wno-unknown-warning-option \
diff --git a/third_party/LLVM/Android.bp b/third_party/LLVM/Android.bp
index 93be07d..a5be4ab 100644
--- a/third_party/LLVM/Android.bp
+++ b/third_party/LLVM/Android.bp
@@ -59,6 +59,7 @@
         "-D__STDC_CONSTANT_MACROS",
         "-D__STDC_FORMAT_MACROS",
         "-DLOG_TAG=\"libLLVM_swiftshader\"",
+        "-Wno-implicit-fallthrough",
         "-Wno-unused-result",
         "-Wno-unused-function",
         "-Wno-unused-variable",
diff --git a/third_party/LLVM/Android.mk b/third_party/LLVM/Android.mk
index a07ca23..23f7d78 100644
--- a/third_party/LLVM/Android.mk
+++ b/third_party/LLVM/Android.mk
@@ -401,6 +401,7 @@
 	-Wall \
 	-Werror \
 	-Wno-implicit-exception-spec-mismatch \
+	-Wno-implicit-fallthrough \
 	-Wno-overloaded-virtual \
 	-Wno-undefined-var-template \
 	-Wno-unneeded-internal-declaration \
diff --git a/third_party/llvm-subzero/Android.bp b/third_party/llvm-subzero/Android.bp
index 854fa8d..72c9b32 100644
--- a/third_party/llvm-subzero/Android.bp
+++ b/third_party/llvm-subzero/Android.bp
@@ -28,6 +28,7 @@
         "-D__STDC_CONSTANT_MACROS",
         "-D__STDC_FORMAT_MACROS",
         "-DLOG_TAG=\"libsubzero\"",
+        "-Wno-implicit-fallthrough",
         "-Wno-unused-parameter",
     ],
 
diff --git a/third_party/subzero/Android.bp b/third_party/subzero/Android.bp
index b0c0c5d..c51b73c 100644
--- a/third_party/subzero/Android.bp
+++ b/third_party/subzero/Android.bp
@@ -28,6 +28,7 @@
         "-D__STDC_CONSTANT_MACROS",
         "-D__STDC_FORMAT_MACROS",
         "-DLOG_TAG=\"libsubzero\"",
+        "-Wno-implicit-fallthrough",
         "-Wno-unused-parameter",
         "-Wno-undefined-var-template",
         "-Wno-unused-lambda-capture",