https://github.com/ojhunt updated 
https://github.com/llvm/llvm-project/pull/137661

>From a52df39baea119a5a7b13dd8d98dd145522f6293 Mon Sep 17 00:00:00 2001
From: Oliver Hunt <oli...@apple.com>
Date: Thu, 24 Apr 2025 13:30:40 -0700
Subject: [PATCH 1/2] [clang] Remove FEM_Indeterminable

Remove FEM_Indeterminable as it is unused and cannot be stored safely in an 
unsigned bitfield
---
 clang/include/clang/Basic/FPOptions.def   |  2 +-
 clang/include/clang/Basic/LangOptions.def | 16 +---------------
 clang/include/clang/Basic/LangOptions.h   |  5 +----
 3 files changed, 3 insertions(+), 20 deletions(-)

diff --git a/clang/include/clang/Basic/FPOptions.def 
b/clang/include/clang/Basic/FPOptions.def
index 85986b4ff0b9c..90428c3c73c8b 100644
--- a/clang/include/clang/Basic/FPOptions.def
+++ b/clang/include/clang/Basic/FPOptions.def
@@ -24,7 +24,7 @@ OPTION(NoHonorInfs, bool, 1, NoHonorNaNs)
 OPTION(NoSignedZero, bool, 1, NoHonorInfs)
 OPTION(AllowReciprocal, bool, 1, NoSignedZero)
 OPTION(AllowApproxFunc, bool, 1, AllowReciprocal)
-OPTION(FPEvalMethod, LangOptions::FPEvalMethodKind, 3, AllowApproxFunc)
+OPTION(FPEvalMethod, LangOptions::FPEvalMethodKind, 2, AllowApproxFunc)
 OPTION(Float16ExcessPrecision, LangOptions::ExcessPrecisionKind, 2, 
FPEvalMethod)
 OPTION(BFloat16ExcessPrecision, LangOptions::ExcessPrecisionKind, 2, 
Float16ExcessPrecision)
 OPTION(MathErrno, bool, 1, BFloat16ExcessPrecision)
diff --git a/clang/include/clang/Basic/LangOptions.def 
b/clang/include/clang/Basic/LangOptions.def
index bc68f95079dc7..930c1c06d1a76 100644
--- a/clang/include/clang/Basic/LangOptions.def
+++ b/clang/include/clang/Basic/LangOptions.def
@@ -347,21 +347,7 @@ BENIGN_ENUM_LANGOPT(DefaultFPContractMode, FPModeKind, 2, 
FPM_Off, "FP contracti
 COMPATIBLE_LANGOPT(ExpStrictFP, 1, false, "Enable experimental strict floating 
point")
 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)
-#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)
-#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
-#pragma clang diagnostic pop
-#endif
-#endif
-
+BENIGN_ENUM_LANGOPT(FPEvalMethod, FPEvalMethodKind, 2, FEM_UnsetOnCommandLine, 
"FP type used for floating point arithmetic")
 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")
 LANGOPT(NoBitFieldTypeAlign , 1, 0, "bit-field type alignment")
diff --git a/clang/include/clang/Basic/LangOptions.h 
b/clang/include/clang/Basic/LangOptions.h
index 40debd961f752..ed873faa851b7 100644
--- a/clang/include/clang/Basic/LangOptions.h
+++ b/clang/include/clang/Basic/LangOptions.h
@@ -321,10 +321,7 @@ class LangOptionsBase {
   };
 
   /// Possible float expression evaluation method choices.
-  enum FPEvalMethodKind {
-    /// The evaluation method cannot be determined or is inconsistent for this
-    /// target.
-    FEM_Indeterminable = -1,
+  enum FPEvalMethodKind : unsigned {
     /// Use the declared type for fp arithmetic.
     FEM_Source = 0,
     /// Use the type double for fp arithmetic.

>From 5bb81005271cab6271393b58634b195fcc7d5503 Mon Sep 17 00:00:00 2001
From: Oliver Hunt <oli...@apple.com>
Date: Fri, 2 May 2025 12:45:42 -0700
Subject: [PATCH 2/2] Revert c2a62af

---
 clang/include/clang/Basic/LangOptions.h | 15 ---------------
 1 file changed, 15 deletions(-)

diff --git a/clang/include/clang/Basic/LangOptions.h 
b/clang/include/clang/Basic/LangOptions.h
index ed873faa851b7..c3b6264e62659 100644
--- a/clang/include/clang/Basic/LangOptions.h
+++ b/clang/include/clang/Basic/LangOptions.h
@@ -78,21 +78,6 @@ class LangOptionsBase {
 
   LangOptionsBase() = default;
 
-#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)
-#if __has_warning("-Wpreferred-type-bitfield-enum-conversion")
-#pragma clang diagnostic pop
-#endif
-#endif
-
   enum GCMode { NonGC, GCOnly, HybridGC };
   enum StackProtectorMode { SSPOff, SSPOn, SSPStrong, SSPReq };
 

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

Reply via email to