Author: Nico Weber
Date: 2025-04-30T10:08:45-04:00
New Revision: c2a62af2a51d58183bcd72ee8a86c37ddd526758

URL: 
https://github.com/llvm/llvm-project/commit/c2a62af2a51d58183bcd72ee8a86c37ddd526758
DIFF: 
https://github.com/llvm/llvm-project/commit/c2a62af2a51d58183bcd72ee8a86c37ddd526758.diff

LOG: [clang] Another Wpreferred-type-bitfield-enum-conversion suppression fix!

If a compiler does not know `__has_warning`, it will of course complain
if it's used on the same line as the check for its presence. Put the use
in a separate line.

Should help e.g. https://lab.llvm.org/buildbot/#/builders/123/builds/18503

Added: 
    

Modified: 
    clang/include/clang/Basic/LangOptions.def
    clang/include/clang/Basic/LangOptions.h

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/LangOptions.def 
b/clang/include/clang/Basic/LangOptions.def
index ecf7a35f7746d..bc68f95079dc7 100644
--- a/clang/include/clang/Basic/LangOptions.def
+++ b/clang/include/clang/Basic/LangOptions.def
@@ -348,15 +348,19 @@ COMPATIBLE_LANGOPT(ExpStrictFP, 1, false, "Enable 
experimental strict floating p
 BENIGN_LANGOPT(RoundingMath, 1, false, "Do not assume default floating-point 
rounding behavior")
 BENIGN_ENUM_LANGOPT(FPExceptionMode, FPExceptionModeKind, 2, FPE_Default, "FP 
Exception Behavior Mode type")
 
-#if defined(__clang__) && defined( __has_warning ) && 
__has_warning("-Wpreferred-type-bitfield-enum-conversion")
+#if defined(__clang__) && defined(__has_warning)
+#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
 // FIXME: Remove this once the warning is fixed, https://llvm.org/PR137600
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wpreferred-type-bitfield-enum-conversion"
 #endif
+#endif
 BENIGN_ENUM_LANGOPT(FPEvalMethod, FPEvalMethodKind, 3, FEM_UnsetOnCommandLine, 
"FP type used for floating point arithmetic")
-#if defined(__clang__) && defined( __has_warning ) && 
__has_warning("-Wpreferred-type-bitfield-enum-conversion")
+#if defined(__clang__) && defined(__has_warning)
+#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
 #pragma clang diagnostic pop
 #endif
+#endif
 
 ENUM_LANGOPT(Float16ExcessPrecision, ExcessPrecisionKind, 2, FPP_Standard, 
"Intermediate truncation behavior for Float16 arithmetic")
 ENUM_LANGOPT(BFloat16ExcessPrecision, ExcessPrecisionKind, 2, FPP_Standard, 
"Intermediate truncation behavior for BFloat16 arithmetic")

diff  --git a/clang/include/clang/Basic/LangOptions.h 
b/clang/include/clang/Basic/LangOptions.h
index 73c4a9e4a0876..40debd961f752 100644
--- a/clang/include/clang/Basic/LangOptions.h
+++ b/clang/include/clang/Basic/LangOptions.h
@@ -78,15 +78,19 @@ class LangOptionsBase {
 
   LangOptionsBase() = default;
 
-#if defined(__clang__) && defined( __has_warning ) && 
__has_warning("-Wpreferred-type-bitfield-enum-conversion")
+#if defined(__clang__) && defined( __has_warning)
+#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
 // FIXME: Remove this once the warning is fixed, https://llvm.org/PR137600
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wpreferred-type-bitfield-enum-conversion"
+#endif
 #endif
   LangOptionsBase(const LangOptionsBase&) = default;
   LangOptionsBase& operator=(const LangOptionsBase&) = default;
-#if defined(__clang__) && defined( __has_warning ) && 
__has_warning("-Wpreferred-type-bitfield-enum-conversion")
+#if defined(__clang__) && defined( __has_warning)
+#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
 #pragma clang diagnostic pop
+#endif
 #endif
 
   enum GCMode { NonGC, GCOnly, HybridGC };


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to