[libc-commits] [libc] [libc] Add _Returns_twice to C++ code (PR #153602)

William Huynh via libc-commits libc-commits at lists.llvm.org
Thu Aug 14 08:42:20 PDT 2025


https://github.com/saturn691 created https://github.com/llvm/llvm-project/pull/153602

Fixes issue with <csetjmp> which requires _Returns_twice but in C++ mode

>From c908ee044cf0a7be6a1dd60333f6fcda73c5ec77 Mon Sep 17 00:00:00 2001
From: William Huynh <William.Huynh at arm.com>
Date: Thu, 14 Aug 2025 16:39:47 +0100
Subject: [PATCH] [libc] Add _Returns_twice to C++ code

Fixes issue with <csetjmp> which requires _Returns_twice but in
C++ mode
---
 libc/include/__llvm-libc-common.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libc/include/__llvm-libc-common.h b/libc/include/__llvm-libc-common.h
index c6fd33a55532c..b376b05df1678 100644
--- a/libc/include/__llvm-libc-common.h
+++ b/libc/include/__llvm-libc-common.h
@@ -47,6 +47,9 @@
 #define __NOEXCEPT throw()
 #endif
 
+#undef _Returns_twice
+#define _Returns_twice [[gnu::returns_twice]]
+
 // 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