[clang] Added support for `__has_feature(bounds_safety)` macro evaluation (PR #182994)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 23 20:57:10 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Abhijeet (abhijeetsharma200)
<details>
<summary>Changes</summary>
Fixes #<!-- -->182948
---
Full diff: https://github.com/llvm/llvm-project/pull/182994.diff
2 Files Affected:
- (modified) clang/include/clang/Basic/Features.def (+1)
- (added) clang/test/Preprocessor/bounds-safety-feature.c (+10)
``````````diff
diff --git a/clang/include/clang/Basic/Features.def b/clang/include/clang/Basic/Features.def
index ea5198a079254..18875db812075 100644
--- a/clang/include/clang/Basic/Features.def
+++ b/clang/include/clang/Basic/Features.def
@@ -324,6 +324,7 @@ FEATURE(shadow_call_stack,
FEATURE(tls, PP.getTargetInfo().isTLSSupported())
FEATURE(underlying_type, LangOpts.CPlusPlus)
FEATURE(experimental_library, LangOpts.ExperimentalLibrary)
+FEATURE(bounds_safety, LangOpts.BoundsSafety)
// C11 features supported by other languages as extensions.
EXTENSION(c_alignas, true)
diff --git a/clang/test/Preprocessor/bounds-safety-feature.c b/clang/test/Preprocessor/bounds-safety-feature.c
new file mode 100644
index 0000000000000..dd84d043a17f5
--- /dev/null
+++ b/clang/test/Preprocessor/bounds-safety-feature.c
@@ -0,0 +1,10 @@
+// RUN: %clang_cc1 -E %s -fexperimental-bounds-safety | FileCheck %s --check-prefix=ENABLED
+// RUN: %clang_cc1 -E %s | FileCheck %s --check-prefix=DISABLED
+
+#if __has_feature(bounds_safety)
+// ENABLED: has_bounds_safety
+void has_bounds_safety() {}
+#else
+// DISABLED: no_bounds_safety
+void no_bounds_safety() {}
+#endif
``````````
</details>
https://github.com/llvm/llvm-project/pull/182994
More information about the cfe-commits
mailing list