Browse Source

Change warning muting so it affects all levels, but locally

Pedro J. Estébanez 1 year ago
parent
commit
9cbc3f1419
2 changed files with 10 additions and 1 deletions
  1. 1 1
      SConstruct
  2. 9 0
      core/os/safe_binary_mutex.h

+ 1 - 1
SConstruct

@@ -861,7 +861,7 @@ else:  # GCC, Clang
             if cc_version_major >= 11:  # Broke on MethodBind templates before GCC 11.
                 env.Append(CCFLAGS=["-Wlogical-op"])
         elif methods.using_clang(env) or methods.using_emcc(env):
-            env.Append(CCFLAGS=["-Wimplicit-fallthrough", "-Wno-undefined-var-template"])
+            env.Append(CCFLAGS=["-Wimplicit-fallthrough"])
     elif env["warnings"] == "all":
         env.Append(CCFLAGS=["-Wall"] + common_warnings)
     elif env["warnings"] == "moderate":

+ 9 - 0
core/os/safe_binary_mutex.h

@@ -37,6 +37,11 @@
 
 #ifdef THREADS_ENABLED
 
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wundefined-var-template"
+#endif
+
 // A very special kind of mutex, used in scenarios where these
 // requirements hold at the same time:
 // - Must be used with a condition variable (only binary mutexes are suitable).
@@ -105,6 +110,10 @@ public:
 	}
 };
 
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 #else // No threads.
 
 template <int Tag>