This is an automated email from the ASF dual-hosted git repository.

pengzheng pushed a commit to branch feature/clang-annotations
in repository https://gitbox.apache.org/repos/asf/celix.git

commit 1f2b928e0ede3315f606c6444f8de6f3f0d279a1
Author: PengZheng <[email protected]>
AuthorDate: Fri Oct 17 14:02:30 2025 +0800

    Add CELIX_HAS_ATTRIBUTE macro to check for attribute support
---
 libs/utils/include/celix_compiler.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/libs/utils/include/celix_compiler.h 
b/libs/utils/include/celix_compiler.h
index 3a942f3e0..866a92e94 100644
--- a/libs/utils/include/celix_compiler.h
+++ b/libs/utils/include/celix_compiler.h
@@ -42,6 +42,19 @@ extern "C" {
 
 #define CELIX_UNIQUE_ID(prefix) CELIX_PASTE(CELIX_PASTE(__UNIQUE_ID_, prefix), 
__COUNTER__)
 
+/**
+ * A wrapper around `__has_attribute()`, which tests for support for 
`__attribute__(())`s.
+ *
+ * See also:
+ * clang: https://clang.llvm.org/docs/LanguageExtensions.html#has-attribute
+ *   gcc: https://gcc.gnu.org/onlinedocs/cpp/_005f_005fhas_005fattribute.html
+ */
+#if defined(__has_attribute)
+#define CELIX_HAS_ATTRIBUTE(x) __has_attribute(x)
+#else
+#define CELIX_HAS_ATTRIBUTE(x) 0
+#endif
+
 #ifdef __cplusplus
 }
 #endif

Reply via email to