Skip to content

Commit 08887b5

Browse files
nicoGeorgeARM
authored andcommitted
[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
1 parent 87b039d commit 08887b5

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

clang/include/clang/Basic/LangOptions.def

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,15 +348,19 @@ COMPATIBLE_LANGOPT(ExpStrictFP, 1, false, "Enable experimental strict floating p
348348
BENIGN_LANGOPT(RoundingMath, 1, false, "Do not assume default floating-point rounding behavior")
349349
BENIGN_ENUM_LANGOPT(FPExceptionMode, FPExceptionModeKind, 2, FPE_Default, "FP Exception Behavior Mode type")
350350

351-
#if defined(__clang__) && defined( __has_warning ) && __has_warning("-Wpreferred-type-bitfield-enum-conversion")
351+
#if defined(__clang__) && defined(__has_warning)
352+
#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
352353
// FIXME: Remove this once the warning is fixed, https://llvm.org/PR137600
353354
#pragma clang diagnostic push
354355
#pragma clang diagnostic ignored "-Wpreferred-type-bitfield-enum-conversion"
355356
#endif
357+
#endif
356358
BENIGN_ENUM_LANGOPT(FPEvalMethod, FPEvalMethodKind, 3, FEM_UnsetOnCommandLine, "FP type used for floating point arithmetic")
357-
#if defined(__clang__) && defined( __has_warning ) && __has_warning("-Wpreferred-type-bitfield-enum-conversion")
359+
#if defined(__clang__) && defined(__has_warning)
360+
#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
358361
#pragma clang diagnostic pop
359362
#endif
363+
#endif
360364

361365
ENUM_LANGOPT(Float16ExcessPrecision, ExcessPrecisionKind, 2, FPP_Standard, "Intermediate truncation behavior for Float16 arithmetic")
362366
ENUM_LANGOPT(BFloat16ExcessPrecision, ExcessPrecisionKind, 2, FPP_Standard, "Intermediate truncation behavior for BFloat16 arithmetic")

clang/include/clang/Basic/LangOptions.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,19 @@ class LangOptionsBase {
7878

7979
LangOptionsBase() = default;
8080

81-
#if defined(__clang__) && defined( __has_warning ) && __has_warning("-Wpreferred-type-bitfield-enum-conversion")
81+
#if defined(__clang__) && defined( __has_warning)
82+
#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
8283
// FIXME: Remove this once the warning is fixed, https://llvm.org/PR137600
8384
#pragma clang diagnostic push
8485
#pragma clang diagnostic ignored "-Wpreferred-type-bitfield-enum-conversion"
86+
#endif
8587
#endif
8688
LangOptionsBase(const LangOptionsBase&) = default;
8789
LangOptionsBase& operator=(const LangOptionsBase&) = default;
88-
#if defined(__clang__) && defined( __has_warning ) && __has_warning("-Wpreferred-type-bitfield-enum-conversion")
90+
#if defined(__clang__) && defined( __has_warning)
91+
#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
8992
#pragma clang diagnostic pop
93+
#endif
9094
#endif
9195

9296
enum GCMode { NonGC, GCOnly, HybridGC };

0 commit comments

Comments
 (0)