[libc-commits] [libc] 0c622d7 - [libc] Add _Returns_twice to C++ code (#153602)
via libc-commits
libc-commits at lists.llvm.org
Tue Aug 19 01:28:26 PDT 2025
Author: William Huynh
Date: 2025-08-19T09:28:23+01:00
New Revision: 0c622d72fc8a311fa879ee2e49478563bf56d7fa
URL: https://github.com/llvm/llvm-project/commit/0c622d72fc8a311fa879ee2e49478563bf56d7fa
DIFF: https://github.com/llvm/llvm-project/commit/0c622d72fc8a311fa879ee2e49478563bf56d7fa.diff
LOG: [libc] Add _Returns_twice to C++ code (#153602)
Fixes issue with `<csetjmp>` which requires `_Returns_twice` but in C++
mode
Added:
Modified:
libc/include/__llvm-libc-common.h
Removed:
################################################################################
diff --git a/libc/include/__llvm-libc-common.h b/libc/include/__llvm-libc-common.h
index c6fd33a55532c..1fe3f4d2aea9c 100644
--- a/libc/include/__llvm-libc-common.h
+++ b/libc/include/__llvm-libc-common.h
@@ -47,6 +47,13 @@
#define __NOEXCEPT throw()
#endif
+#undef _Returns_twice
+#if __cplusplus >= 201103L
+#define _Returns_twice [[gnu::returns_twice]]
+#else
+#define _Returns_twice __attribute__((returns_twice))
+#endif
+
// This macro serves as a generic cast implementation for use in both C and C++,
// similar to `__BIONIC_CAST` in Android.
#undef __LLVM_LIBC_CAST
More information about the libc-commits
mailing list