Author: Nico Weber
Date: 2025-04-30T09:56:52-04:00
New Revision: 1b7d8b2ee66672c5226f2a8d6b72b025070d9ede

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

LOG: [clang] prevent -Wunknown-warning-option with older clangs

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 1258a349ebf00..ecf7a35f7746d 100644
--- a/clang/include/clang/Basic/LangOptions.def
+++ b/clang/include/clang/Basic/LangOptions.def
@@ -348,13 +348,13 @@ 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__)
+#if defined(__clang__) && defined( __has_warning ) && 
__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
 BENIGN_ENUM_LANGOPT(FPEvalMethod, FPEvalMethodKind, 3, FEM_UnsetOnCommandLine, 
"FP type used for floating point arithmetic")
-#if defined(__clang__)
+#if defined(__clang__) && defined( __has_warning ) && 
__has_warning("-Wpreferred-type-bitfield-enum-conversion")
 #pragma clang diagnostic pop
 #endif
 

diff  --git a/clang/include/clang/Basic/LangOptions.h 
b/clang/include/clang/Basic/LangOptions.h
index ae25c09f837b7..73c4a9e4a0876 100644
--- a/clang/include/clang/Basic/LangOptions.h
+++ b/clang/include/clang/Basic/LangOptions.h
@@ -78,14 +78,14 @@ class LangOptionsBase {
 
   LangOptionsBase() = default;
 
-#if defined(__clang__)
+#if defined(__clang__) && defined( __has_warning ) && 
__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
   LangOptionsBase(const LangOptionsBase&) = default;
   LangOptionsBase& operator=(const LangOptionsBase&) = default;
-#if defined(__clang__)
+#if defined(__clang__) && defined( __has_warning ) && 
__has_warning("-Wpreferred-type-bitfield-enum-conversion")
 #pragma clang diagnostic pop
 #endif
 


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

Reply via email to