[libcxx-commits] [libcxxabi] a06c893 - [libc++abi] Make once_flag constinit in cxa_exception_storage (#124627)

via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jan 28 13:45:01 PST 2025


Author: Louis Dionne
Date: 2025-01-28T16:44:57-05:00
New Revision: a06c89387621b0a040e6203e7f1a2d8243f5be33

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

LOG: [libc++abi] Make once_flag constinit in cxa_exception_storage (#124627)

This makes it clearer that initialization of this global variable is
taking place at compile-time, reducing the likelihood of static
initialization order fiasco.

Added: 
    

Modified: 
    libcxxabi/src/cxa_exception_storage.cpp

Removed: 
    


################################################################################
diff  --git a/libcxxabi/src/cxa_exception_storage.cpp b/libcxxabi/src/cxa_exception_storage.cpp
index 733f0d470569a2..05da6a48e313cf 100644
--- a/libcxxabi/src/cxa_exception_storage.cpp
+++ b/libcxxabi/src/cxa_exception_storage.cpp
@@ -56,7 +56,7 @@ extern "C" {
 namespace __cxxabiv1 {
 namespace {
     std::__libcpp_tls_key key_;
-    std::__libcpp_exec_once_flag flag_ = _LIBCPP_EXEC_ONCE_INITIALIZER;
+    constinit std::__libcpp_exec_once_flag flag_ = _LIBCPP_EXEC_ONCE_INITIALIZER;
 
     void _LIBCPP_TLS_DESTRUCTOR_CC destruct_(void *p) {
         __free_with_fallback(p);


        


More information about the libcxx-commits mailing list