[libcxx-commits] [libcxx] 8b73be5 - [libc++] Readd _LIBCPP_CONSTINIT

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Mon Nov 13 04:07:47 PST 2023


Author: Nikolas Klauser
Date: 2023-11-13T13:07:32+01:00
New Revision: 8b73be5f57106348a622e36ad3aa0734c6038a8d

URL: https://github.com/llvm/llvm-project/commit/8b73be5f57106348a622e36ad3aa0734c6038a8d
DIFF: https://github.com/llvm/llvm-project/commit/8b73be5f57106348a622e36ad3aa0734c6038a8d.diff

LOG: [libc++] Readd _LIBCPP_CONSTINIT

This isn't used by libc++, but it's still used in libc++abi.

Added: 
    

Modified: 
    libcxx/.clang-format
    libcxx/include/__config

Removed: 
    


################################################################################
diff  --git a/libcxx/.clang-format b/libcxx/.clang-format
index 05d5c473ec79b4d..16948dbee314c09 100644
--- a/libcxx/.clang-format
+++ b/libcxx/.clang-format
@@ -23,6 +23,7 @@ AttributeMacros: [
                   '_LIBCPP_CONSTEXPR_SINCE_CXX20',
                   '_LIBCPP_CONSTEXPR_SINCE_CXX23',
                   '_LIBCPP_CONSTEXPR',
+                  '_LIBCPP_CONSTINIT',
                   '_LIBCPP_DEPRECATED_IN_CXX11',
                   '_LIBCPP_DEPRECATED_IN_CXX14',
                   '_LIBCPP_DEPRECATED_IN_CXX17',

diff  --git a/libcxx/include/__config b/libcxx/include/__config
index 6b643e1ca5e23a4..e8da358bb8d7cd5 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -1226,6 +1226,14 @@ __sanitizer_verify_double_ended_contiguous_container(const void*, const void*, c
 #    define _LIBCPP_THREAD_SAFETY_ANNOTATION(x)
 #  endif
 
+#  if _LIBCPP_STD_VER >= 20
+#    define _LIBCPP_CONSTINIT constinit
+#  elif __has_attribute(__require_constant_initialization__)
+#    define _LIBCPP_CONSTINIT __attribute__((__require_constant_initialization__))
+#  else
+#    define _LIBCPP_CONSTINIT
+#  endif
+
 #  if __has_attribute(__diagnose_if__) && !defined(_LIBCPP_DISABLE_ADDITIONAL_DIAGNOSTICS)
 #    define _LIBCPP_DIAGNOSE_WARNING(...) __attribute__((__diagnose_if__(__VA_ARGS__, "warning")))
 #  else


        


More information about the libcxx-commits mailing list