Prepare for -Wimplicit-fallthrough in ANGLE.

Disable the warning for flex-generated output, which contains
lots of intentional fallthrough.

Fixes a bug where GL_SAMPLE_ALPHA_TO_ONE_EXT would fall through
to GL_COVERAGE_MODULATION_CHROMIUM and hence behave like that.

Fixes a bug in the D3D9 state management where invalidating
DIRTY_BIT_POLYGON_OFFSET would also invalidate the stencil bits.

One somewhat common incorrect pattern in ANGLE is nested switch
statements that look like so:

  switch (a) {
    case a1:
      switch (b) {
        case b1:
          ...
          break;
      }
    case a2:
      ...
  }

The assumption here seems to be that the breakk exits the outer
case (here a1), while it in fact only exits the inner switch,
so that we fall through to a2.  In most places, I fixed this
by adding an explicit `break` after the inner switch.

This fixes a bug wher GL_PATH_JOIN_STYLE_CHROMIUM would fall through to
GL_PATH_MITER_LIMIT_CHROMIUM in validation (but since the join style
enum is always > 0, this happened to not have an effect in practice).

This also fixes 87 bugs in GetLoadFunctionsMap() where invalid
values would previously return an unrelated function map instead
of the empty load function map.

Bug: chromium:810767
Change-Id: Ib51388c73fbfc229160e2c10f8fb9364cc7c996c
Reviewed-on: https://chromium-review.googlesource.com/911529
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/common/angle_fallthrough.h b/src/common/angle_fallthrough.h
new file mode 100644
index 0000000..c597bad
--- /dev/null
+++ b/src/common/angle_fallthrough.h
@@ -0,0 +1,24 @@
+//
+// Copyright 2018 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// aligned_memory: Defines ANGLE_FALLTHROUGH. Do not include in public headers.
+//
+
+#ifndef COMMON_ANGLE_FALLTHROUGH_H_
+#define COMMON_ANGLE_FALLTHROUGH_H_
+
+// When clang suggests inserting [[clang::fallthrough]], it first checks if
+// it knows of a macro expanding to it, and if so suggests inserting the
+// macro.  This means that this macro must be used only in code internal
+// to ANGLE, so that ANGLE's user code doesn't end up getting suggestions
+// for ANGLE_FALLTHROUGH instead of the user-specific fallthrough macro.
+// So do not include this header in any of ANGLE's public headers.
+#if defined(__clang__)
+#define ANGLE_FALLTHROUGH [[clang::fallthrough]]
+#else
+#define ANGLE_FALLTHROUGH
+#endif
+
+#endif  // COMMON_ANGLE_FALLTHROUGH_H_
diff --git a/src/compiler/preprocessor/Tokenizer.cpp b/src/compiler/preprocessor/Tokenizer.cpp
index d8a9b9a..8eacea8 100644
--- a/src/compiler/preprocessor/Tokenizer.cpp
+++ b/src/compiler/preprocessor/Tokenizer.cpp
@@ -911,6 +911,10 @@
 #elif defined(_MSC_VER)
 #pragma warning(disable: 4244)
 #endif
+#if defined(__clang__)
+// Flex uses `/*FALLTHROUGH*/` instead of dedicated statements.
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 
 // Workaround for flex using the register keyword, deprecated in C++11.
 #ifdef __cplusplus
diff --git a/src/compiler/preprocessor/Tokenizer.l b/src/compiler/preprocessor/Tokenizer.l
index 096812d..5580138 100644
--- a/src/compiler/preprocessor/Tokenizer.l
+++ b/src/compiler/preprocessor/Tokenizer.l
@@ -38,6 +38,10 @@
 #elif defined(_MSC_VER)
 #pragma warning(disable: 4244)
 #endif
+#if defined(__clang__)
+// Flex uses `/*FALLTHROUGH*/` instead of dedicated statements.
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 
 // Workaround for flex using the register keyword, deprecated in C++11.
 #ifdef __cplusplus
diff --git a/src/compiler/translator/ASTMetadataHLSL.cpp b/src/compiler/translator/ASTMetadataHLSL.cpp
index 055408d..232a958 100644
--- a/src/compiler/translator/ASTMetadataHLSL.cpp
+++ b/src/compiler/translator/ASTMetadataHLSL.cpp
@@ -105,6 +105,7 @@
                 case EOpDFdy:
                 case EOpFwidth:
                     onGradient();
+                    break;
                 default:
                     break;
             }
diff --git a/src/compiler/translator/EmulatePrecision.cpp b/src/compiler/translator/EmulatePrecision.cpp
index d3acfbd..0219d7a 100644
--- a/src/compiler/translator/EmulatePrecision.cpp
+++ b/src/compiler/translator/EmulatePrecision.cpp
@@ -6,6 +6,7 @@
 
 #include "compiler/translator/EmulatePrecision.h"
 
+#include "common/angle_fallthrough.h"
 #include "compiler/translator/FunctionLookup.h"
 
 #include <memory>
@@ -639,6 +640,7 @@
             {
                 break;
             }
+            ANGLE_FALLTHROUGH;
         default:
             TIntermNode *parent = getParentNode();
             if (canRoundFloat(node->getType()) && ParentUsesResult(parent, node) &&
diff --git a/src/compiler/translator/IntermNode.cpp b/src/compiler/translator/IntermNode.cpp
index c40a093..dca3bc7 100644
--- a/src/compiler/translator/IntermNode.cpp
+++ b/src/compiler/translator/IntermNode.cpp
@@ -1588,6 +1588,7 @@
             {
                 return true;
             }
+            break;
         }
         default:
             break;
diff --git a/src/compiler/translator/ParseContext.cpp b/src/compiler/translator/ParseContext.cpp
index d912576..59de39d 100644
--- a/src/compiler/translator/ParseContext.cpp
+++ b/src/compiler/translator/ParseContext.cpp
@@ -4918,6 +4918,7 @@
                 unaryOpError(loc, GetOperatorString(op), child->getCompleteString());
                 return nullptr;
             }
+            break;
         // Operators for built-ins are already type checked against their prototype.
         default:
             break;
diff --git a/src/compiler/translator/glslang.l b/src/compiler/translator/glslang.l
index 549787a..da52369 100644
--- a/src/compiler/translator/glslang.l
+++ b/src/compiler/translator/glslang.l
@@ -26,9 +26,9 @@
 
 // Ignore errors in auto-generated code.
 #if defined(__GNUC__)
+#pragma GCC diagnostic ignored "-Wswitch-enum"
 #pragma GCC diagnostic ignored "-Wunused-function"
 #pragma GCC diagnostic ignored "-Wunused-variable"
-#pragma GCC diagnostic ignored "-Wswitch-enum"
 #elif defined(_MSC_VER)
 #pragma warning(disable: 4005)
 #pragma warning(disable: 4065)
@@ -38,6 +38,9 @@
 #pragma warning(disable: 4701)
 #pragma warning(disable: 4702)
 #endif
+#if defined(__clang__)
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 }
 
 %{
diff --git a/src/compiler/translator/glslang_lex.cpp b/src/compiler/translator/glslang_lex.cpp
index 2bf623f..4e60164 100644
--- a/src/compiler/translator/glslang_lex.cpp
+++ b/src/compiler/translator/glslang_lex.cpp
@@ -11,9 +11,9 @@
 
 // Ignore errors in auto-generated code.
 #if defined(__GNUC__)
+#pragma GCC diagnostic ignored "-Wswitch-enum"
 #pragma GCC diagnostic ignored "-Wunused-function"
 #pragma GCC diagnostic ignored "-Wunused-variable"
-#pragma GCC diagnostic ignored "-Wswitch-enum"
 #elif defined(_MSC_VER)
 #pragma warning(disable: 4005)
 #pragma warning(disable: 4065)
@@ -23,6 +23,9 @@
 #pragma warning(disable: 4701)
 #pragma warning(disable: 4702)
 #endif
+#if defined(__clang__)
+#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
+#endif
 
 
 
diff --git a/src/libANGLE/State.cpp b/src/libANGLE/State.cpp
index d4085c4..d837af8 100644
--- a/src/libANGLE/State.cpp
+++ b/src/libANGLE/State.cpp
@@ -1766,9 +1766,10 @@
         break;
       case GL_SAMPLE_ALPHA_TO_ONE_EXT:
         *params = static_cast<GLfloat>(mSampleAlphaToOne);
+        break;
       case GL_COVERAGE_MODULATION_CHROMIUM:
-          params[0] = static_cast<GLfloat>(mCoverageModulation);
-          break;
+        params[0] = static_cast<GLfloat>(mCoverageModulation);
+        break;
       default:
         UNREACHABLE();
         break;
@@ -2051,6 +2052,7 @@
           break;
       case GL_SAMPLE_ALPHA_TO_ONE_EXT:
           *params = static_cast<GLint>(mSampleAlphaToOne);
+          break;
       case GL_COVERAGE_MODULATION_CHROMIUM:
           *params = static_cast<GLint>(mCoverageModulation);
           break;
diff --git a/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp b/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
index 3e2c9b6..1f858f1 100644
--- a/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
@@ -1032,6 +1032,7 @@
                 {
                     invalidateCurrentValueAttrib(attribIndex);
                 }
+                break;
             }
             default:
                 break;
diff --git a/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp b/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp
index a3bdc14..17042ac 100644
--- a/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp
+++ b/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp
@@ -250,6 +250,7 @@
                 {
                     mDirtyBits.set(DIRTY_BIT_DEPTH_BIAS);
                 }
+                break;
             }
             case gl::State::DIRTY_BIT_DEPTH_MASK:
                 if (state.getDepthStencilState().depthMask != mCurDepthStencilState.depthMask)
diff --git a/src/libANGLE/renderer/gen_load_functions_table.py b/src/libANGLE/renderer/gen_load_functions_table.py
old mode 100644
new mode 100755
index eb3e4c5..9326894
--- a/src/libANGLE/renderer/gen_load_functions_table.py
+++ b/src/libANGLE/renderer/gen_load_functions_table.py
@@ -80,12 +80,11 @@
     {{
 {switch_data}
         default:
-        {{
-            static LoadFunctionMap emptyLoadFunctionsMap;
-            return emptyLoadFunctionsMap;
-        }}
+            break;
     }}
     // clang-format on
+    static LoadFunctionMap emptyLoadFunctionsMap;
+    return emptyLoadFunctionsMap;
 
 }}  // GetLoadFunctionsMap
 
@@ -163,15 +162,21 @@
         if do_switch:
             table_data += s + 'default:\n'
 
+        has_break_in_switch = False
         if angle_format_unknown in angle_to_type_map:
             table_data += s + '    return ' + unknown_func_name(internal_format) + ';\n'
             load_functions_data += get_unknown_load_func(angle_to_type_map, internal_format)
         else:
+            has_break_in_switch = True
             table_data += s + '    break;\n'
 
         if do_switch:
             s = s[4:]
             table_data += s + '}\n'
+            if has_break_in_switch:
+                # If the inner switch contains a break statement, add a break
+                # statement after the switch as well.
+                table_data += s + 'break;\n'
             s = s[4:]
             table_data += s + '}\n'
 
diff --git a/src/libANGLE/renderer/load_functions_table_autogen.cpp b/src/libANGLE/renderer/load_functions_table_autogen.cpp
index 3c40939..6da1a7a 100644
--- a/src/libANGLE/renderer/load_functions_table_autogen.cpp
+++ b/src/libANGLE/renderer/load_functions_table_autogen.cpp
@@ -1580,6 +1580,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_BGR565_ANGLEX:
         {
@@ -1590,6 +1591,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_BGR5_A1_ANGLEX:
             return BGR5_A1_ANGLEX_to_default;
@@ -1608,6 +1610,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_RG11_EAC:
         {
@@ -1618,6 +1621,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_RGB8_ETC2:
         {
@@ -1628,6 +1632,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE:
         {
@@ -1638,6 +1643,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
         {
@@ -1648,6 +1654,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
         {
@@ -1658,6 +1665,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_RGBA8_ETC2_EAC:
         {
@@ -1668,6 +1676,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
             return COMPRESSED_RGBA_S3TC_DXT1_EXT_to_default;
@@ -1686,6 +1695,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_SIGNED_RG11_EAC:
         {
@@ -1696,6 +1706,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
         {
@@ -1706,6 +1717,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_SRGB8_ETC2:
         {
@@ -1716,6 +1728,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE:
         {
@@ -1726,6 +1739,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
         {
@@ -1736,6 +1750,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
         {
@@ -1746,6 +1761,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
             return COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT_to_default;
@@ -1764,6 +1780,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_DEPTH32F_STENCIL8:
         {
@@ -1774,6 +1791,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_DEPTH_COMPONENT16:
         {
@@ -1784,6 +1802,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_DEPTH_COMPONENT24:
         {
@@ -1794,6 +1813,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_DEPTH_COMPONENT32F:
         {
@@ -1804,6 +1824,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_DEPTH_COMPONENT32_OES:
             return DEPTH_COMPONENT32_OES_to_default;
@@ -1816,6 +1837,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_ETC1_RGB8_OES:
         {
@@ -1826,6 +1848,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_LUMINANCE:
         {
@@ -1872,6 +1895,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R16F:
         {
@@ -1882,6 +1906,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R16I:
         {
@@ -1892,6 +1917,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R16UI:
         {
@@ -1902,6 +1928,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R16_EXT:
         {
@@ -1912,6 +1939,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R16_SNORM_EXT:
         {
@@ -1922,6 +1950,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R32F:
         {
@@ -1932,6 +1961,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R32I:
         {
@@ -1942,6 +1972,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R32UI:
         {
@@ -1952,6 +1983,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R8:
         {
@@ -1962,6 +1994,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R8I:
         {
@@ -1972,6 +2005,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R8UI:
         {
@@ -1982,6 +2016,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_R8_SNORM:
         {
@@ -1992,6 +2027,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG16F:
         {
@@ -2002,6 +2038,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG16I:
         {
@@ -2012,6 +2049,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG16UI:
         {
@@ -2022,6 +2060,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG16_EXT:
         {
@@ -2032,6 +2071,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG16_SNORM_EXT:
         {
@@ -2042,6 +2082,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG32F:
         {
@@ -2052,6 +2093,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG32I:
         {
@@ -2062,6 +2104,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG32UI:
         {
@@ -2072,6 +2115,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG8:
         {
@@ -2082,6 +2126,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG8I:
         {
@@ -2092,6 +2137,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG8UI:
         {
@@ -2102,6 +2148,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RG8_SNORM:
         {
@@ -2112,6 +2159,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB:
             return RGB_to_default;
@@ -2124,6 +2172,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB10_A2UI:
         {
@@ -2134,6 +2183,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB16F:
         {
@@ -2144,6 +2194,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB16I:
         {
@@ -2154,6 +2205,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB16UI:
         {
@@ -2164,6 +2216,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB16_EXT:
         {
@@ -2174,6 +2227,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB16_SNORM_EXT:
         {
@@ -2184,6 +2238,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB32F:
         {
@@ -2194,6 +2249,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB32I:
         {
@@ -2204,6 +2260,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB32UI:
         {
@@ -2214,6 +2271,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB565:
         {
@@ -2226,6 +2284,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB5_A1:
         {
@@ -2238,6 +2297,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB8:
         {
@@ -2248,6 +2308,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB8I:
         {
@@ -2258,6 +2319,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB8UI:
         {
@@ -2268,6 +2330,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB8_SNORM:
         {
@@ -2278,6 +2341,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGB9_E5:
         {
@@ -2288,6 +2352,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA:
             return RGBA_to_default;
@@ -2300,6 +2365,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA16I:
         {
@@ -2310,6 +2376,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA16UI:
         {
@@ -2320,6 +2387,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA16_EXT:
         {
@@ -2330,6 +2398,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA16_SNORM_EXT:
         {
@@ -2340,6 +2409,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA32F:
         {
@@ -2350,6 +2420,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA32I:
         {
@@ -2360,6 +2431,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA32UI:
         {
@@ -2370,6 +2442,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA4:
         {
@@ -2382,6 +2455,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA8:
         {
@@ -2392,6 +2466,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA8I:
         {
@@ -2402,6 +2477,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA8UI:
         {
@@ -2412,6 +2488,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_RGBA8_SNORM:
         {
@@ -2422,6 +2499,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_SRGB8:
         {
@@ -2432,6 +2510,7 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_SRGB8_ALPHA8:
         {
@@ -2442,17 +2521,17 @@
                 default:
                     break;
             }
+            break;
         }
         case GL_STENCIL_INDEX8:
             return STENCIL_INDEX8_to_default;
 
         default:
-        {
-            static LoadFunctionMap emptyLoadFunctionsMap;
-            return emptyLoadFunctionsMap;
-        }
+            break;
     }
     // clang-format on
+    static LoadFunctionMap emptyLoadFunctionsMap;
+    return emptyLoadFunctionsMap;
 
 }  // GetLoadFunctionsMap
 
diff --git a/src/libANGLE/validationEGL.cpp b/src/libANGLE/validationEGL.cpp
index 6a2cb08..466336e 100644
--- a/src/libANGLE/validationEGL.cpp
+++ b/src/libANGLE/validationEGL.cpp
@@ -445,6 +445,7 @@
                                   "platform type of EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE or "
                                   "EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE.";
                     }
+                    break;
                 default:
                     break;
             }
@@ -2473,6 +2474,7 @@
                 default:
                     return EglBadAttribute() << "Invalid multisample resolve type.";
             }
+            break;
 
         case EGL_SWAP_BEHAVIOR:
             switch (value)
@@ -2491,6 +2493,7 @@
                 default:
                     return EglBadAttribute() << "Invalid swap behaviour.";
             }
+            break;
 
         default:
             return EglBadAttribute() << "Invalid surface attribute.";
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 7730ff1..4bb3b97 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -3328,6 +3328,7 @@
                     context->handleError(InvalidEnum() << "Invalid join style.");
                     return false;
             }
+            break;
         case GL_PATH_MITER_LIMIT_CHROMIUM:
             if (value < 0.0f)
             {