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