[libcxx-commits] [libcxxabi] [libc++abi] Make once_flag constinit in cxa_exception_storage (PR #124627)
Louis Dionne via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jan 27 13:06:35 PST 2025
https://github.com/ldionne created https://github.com/llvm/llvm-project/pull/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.
>From f350ecc8bd70abe6d6227ed66c9e8904e2090129 Mon Sep 17 00:00:00 2001
From: Louis Dionne <ldionne.2 at gmail.com>
Date: Mon, 27 Jan 2025 16:05:10 -0500
Subject: [PATCH] [libc++abi] Make once_flag constinit in cxa_exception_storage
This makes it clearer that initialization of this global variable
is taking place at compile-time, reducing the likelihood of static
initialization order fiasco.
---
libcxxabi/src/cxa_exception_storage.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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