[config] Suppress implicit-fallthrough

Change-Id: I91223c9e2297955ebdf7108bf8a99fb535755621
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/freetype2/+/527267
Reviewed-by: Shai Barack <shayba@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 22bdbe1..e2fc2bc 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -25,31 +25,31 @@
 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
 config("freetype_config") {
-  include_dirs = [
-    "include",
-  ]
-  cflags = []
-  if (is_clang) {
-    cflags += [
-      "-Wno-conversion",
-      "-Wno-unused-function",
-      "-Wno-unused-variable",
-      "-Wno-macro-redefined",
-    ]
-  }
+  include_dirs = [ "include" ]
+  cflags = [ "-Wno-macro-redefined" ]
 }
+
+config("freetype_warnings") {
+  cflags = [
+    "-Wno-conversion",
+    "-Wno-implicit-fallthrough",
+    "-Wno-unused-function",
+    "-Wno-unused-variable",
+  ]
+}
+
 config("freetype_config_for_rust_host") {
   # Without `-fPIC`, we get the error:
   # > ld.lld: error: can't create dynamic relocation R_X86_64_64 against local symbol in readonly
   # > segment
-  cflags = ["-fPIC"]
+  cflags = [ "-fPIC" ]
 }
+
 #TODO(mikejurka): Remove once we've migrated to the freetype2 target everywhere
 group("freetype") {
-  public_deps = [
-    ":freetype2",
-  ]
+  public_deps = [ ":freetype2" ]
 }
 template("freetype_library") {
   target(invoker.library_type, target_name) {
@@ -57,7 +57,7 @@
     if (!defined(rust_host)) {
       rust_host = false
     }
-    shared_lib = (library_type == "shared_library")
+    shared_lib = library_type == "shared_library"
     sources = [
       "src/autofit/autofit.c",
       "src/base/ftbase.c",
@@ -71,9 +71,9 @@
       "src/base/ftinit.c",
       "src/base/ftmm.c",
       "src/base/ftstroke.c",
+      "src/base/ftsynth.c",
       "src/base/ftsystem.c",
       "src/base/fttype1.c",
-      "src/base/ftsynth.c",
       "src/gzip/ftgzip.c",
       "src/lzw/ftlzw.c",
       "src/psaux/psaux.c",
@@ -81,13 +81,15 @@
       "src/psnames/psnames.c",
       "src/sfnt/sfnt.c",
       "src/smooth/smooth.c",
+
       # Font Drivers. Drivers need to be enabled in ftmodule.h explicitly.
-      "src/cff/cff.c",           # OpenType, (.cff, .cef)
-      "src/truetype/truetype.c", # TrueType
+      "src/cff/cff.c",  # OpenType, (.cff, .cef)
+      "src/truetype/truetype.c",  # TrueType
     ]
     defines = [
       "FT2_BUILD_LIBRARY",
       "DARWIN_NO_CARBON",
+
       # Long directory name to avoid accidentally using wrong headers.
       "FT_CONFIG_MODULES_H=<freetype-fuchsia-config/ftmodule.h>",
       "FT_CONFIG_OPTIONS_H=<freetype-fuchsia-config/ftoption.h>",
@@ -102,19 +104,23 @@
       # Reduce visibility of symbols.
       defines += [ "FT_EXPORT(x)=x" ]
     }
+    configs += [ ":freetype_warnings" ]
     if (!rust_host) {
       defines += [ "FT_CONFIG_OPTION_USE_PNG" ]
     }
     public_configs = [ ":freetype_config" ]
     if (rust_host) {
-      public_configs += [":freetype_config_for_rust_host"]
+      public_configs += [
+        ":freetype_config_for_rust_host",
+        ":freetype_warnings",
+      ]
     }
     if (rust_host) {
-      deps = ["//third_party/zlib:zlib_for_rust_host"]
+      deps = [ "//third_party/zlib:zlib_for_rust_host" ]
     } else {
       deps = [
         "//third_party/libpng",
-        "//third_party/zlib"
+        "//third_party/zlib",
       ]
     }
   }
@@ -127,6 +133,7 @@
     library_type = "shared_library"
   }
 }
+
 # TODO(36315): Remove workaround for Rust host_toolchain
 freetype_library("freetype2_for_rust_host") {
   library_type = "static_library"