diff --git a/flutter/lib/gpu/BUILD.gn b/flutter/lib/gpu/BUILD.gn
index 50e6f07..446c19a 100644
--- a/flutter/lib/gpu/BUILD.gn
+++ b/flutter/lib/gpu/BUILD.gn
@@ -7,15 +7,18 @@ import("//flutter/impeller/tools/impeller.gni")
 import("//flutter/testing/testing.gni")
 
 source_set("gpu") {
-  cflags = [
-    # Dart gives us doubles. Skia and Impeller work in floats.
-    # If Dart gives us a double > FLT_MAX or < -FLT_MAX, implicit conversion
-    # will convert it to either inf/-inf or FLT_MAX/-FLT_MAX (undefined
-    # behavior). This can result in surprising and difficult to debug behavior
-    # for Flutter application developers, so it should be explicitly handled
-    # via SafeNarrow.
-    "-Wimplicit-float-conversion",
-  ]
+  cflags = []
+  if (is_clang) {
+    cflags += [
+      # Dart gives us doubles. Skia and Impeller work in floats.
+      # If Dart gives us a double > FLT_MAX or < -FLT_MAX, implicit conversion
+      # will convert it to either inf/-inf or FLT_MAX/-FLT_MAX (undefined
+      # behavior). This can result in surprising and difficult to debug behavior
+      # for Flutter application developers, so it should be explicitly handled
+      # via SafeNarrow.
+      "-Wimplicit-float-conversion",
+    ]
+  }
 
   if (is_win) {
     # This causes build failures in third_party dependencies on Windows.
diff --git a/flutter/lib/ui/BUILD.gn b/flutter/lib/ui/BUILD.gn
index 6ed8db4..38f3440 100644
--- a/flutter/lib/ui/BUILD.gn
+++ b/flutter/lib/ui/BUILD.gn
@@ -12,15 +12,18 @@ if (is_fuchsia) {
 }
 
 source_set("ui") {
-  cflags = [
-    # Dart gives us doubles. Skia and Impeller work in floats.
-    # If Dart gives us a double > FLT_MAX or < -FLT_MAX, implicit conversion
-    # will convert it to either inf/-inf or FLT_MAX/-FLT_MAX (undefined
-    # behavior). This can result in surprising and difficult to debug behavior
-    # for Flutter application developers, so it should be explicitly handled
-    # via SafeNarrow.
-    "-Wimplicit-float-conversion",
-  ]
+  cflags = []
+  if (is_clang) {
+    cflags += [
+      # Dart gives us doubles. Skia and Impeller work in floats.
+      # If Dart gives us a double > FLT_MAX or < -FLT_MAX, implicit conversion
+      # will convert it to either inf/-inf or FLT_MAX/-FLT_MAX (undefined
+      # behavior). This can result in surprising and difficult to debug behavior
+      # for Flutter application developers, so it should be explicitly handled
+      # via SafeNarrow.
+      "-Wimplicit-float-conversion",
+    ]
+  }
 
   if (is_win) {
     # This causes build failures in third_party dependencies on Windows.
