Browse Source

SCons: Disable `-Werror=return-type` for GCC 12+ due to regression

Works around and thus closes #58747.
Supersedes #60613.

(cherry picked from commit 01f8f17b67eb3ebbde5489eb6ee96d332e368d14)
Rémi Verschelde 3 years ago
parent
commit
07545b0063
1 changed files with 6 additions and 2 deletions
  1. 6 2
      SConstruct

+ 6 - 2
SConstruct

@@ -502,8 +502,12 @@ if selected_platform in platform_list:
 
         if env["werror"]:
             env.Append(CCFLAGS=["-Werror"])
-        else:  # always enable those errors
-            env.Append(CCFLAGS=["-Werror=return-type"])
+            if methods.using_gcc(env) and version[0] >= 12:  # False positives in our error macros, see GH-58747.
+                env.Append(CCFLAGS=["-Wno-error=return-type"])
+        else:  # Always enable those errors.
+            # False positives in our error macros, see GH-58747.
+            if not (methods.using_gcc(env) and version[0] >= 12):
+                env.Append(CCFLAGS=["-Werror=return-type"])
 
     if hasattr(detect, "get_program_suffix"):
         suffix = "." + detect.get_program_suffix()