[clang] c2a62af - [clang] Another Wpreferred-type-bitfield-enum-conversion suppression fix!
Nico Weber via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 30 07:08:51 PDT 2025
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 };
More information about the cfe-commits
mailing list