[llvm-branch-commits] [libc] ee08d72 - [libc][exit] Use LIBC_CONSTINIT macro to allow pre-C++20 compilation (#220041)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Sep 1 14:54:08 PDT 2026


Author: Jackson Stogel
Date: 2026-08-31T12:03:54-07:00
New Revision: ee08d72b80805421633dd8d88f08555ee3339156

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

LOG: [libc][exit] Use LIBC_CONSTINIT macro to allow pre-C++20 compilation (#220041)

The `constinit` specifier was added in these files before
`LIBC_CONSTINIT` was added to LLVM-libc. This PR updates the
`at_quick_exit` and `atexit` entrypoints so they may be compiled
pre-C++20.

Added: 
    

Modified: 
    libc/src/stdlib/CMakeLists.txt
    libc/src/stdlib/at_quick_exit.cpp
    libc/src/stdlib/atexit.cpp

Removed: 
    


################################################################################
diff  --git a/libc/src/stdlib/CMakeLists.txt b/libc/src/stdlib/CMakeLists.txt
index af2cad21028d5..ab0970dc547e5 100644
--- a/libc/src/stdlib/CMakeLists.txt
+++ b/libc/src/stdlib/CMakeLists.txt
@@ -782,8 +782,6 @@ add_entrypoint_object(
     atexit.cpp
   HDRS
     atexit.h
-  CXX_STANDARD
-    20 # For constinit
   DEPENDS
     .exit_handler
 )
@@ -794,8 +792,6 @@ add_entrypoint_object(
     at_quick_exit.cpp
   HDRS
     at_quick_exit.h
-  CXX_STANDARD
-    20 # For constinit
   DEPENDS
     .exit_handler
     .atexit

diff  --git a/libc/src/stdlib/at_quick_exit.cpp b/libc/src/stdlib/at_quick_exit.cpp
index d2b4c0cec986f..d46175fedf888 100644
--- a/libc/src/stdlib/at_quick_exit.cpp
+++ b/libc/src/stdlib/at_quick_exit.cpp
@@ -9,12 +9,13 @@
 #include "src/stdlib/at_quick_exit.h"
 #include "hdr/types/atexithandler_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/attributes.h"
 #include "src/__support/macros/config.h"
 #include "src/stdlib/exit_handler.h"
 
 namespace LIBC_NAMESPACE_DECL {
 
-constinit ExitCallbackList at_quick_exit_callbacks;
+LIBC_CONSTINIT ExitCallbackList at_quick_exit_callbacks;
 
 LLVM_LIBC_FUNCTION(int, at_quick_exit, (__atexithandler_t callback)) {
   return add_atexit_unit(

diff  --git a/libc/src/stdlib/atexit.cpp b/libc/src/stdlib/atexit.cpp
index 5b924be3a63ed..58e8a614517a4 100644
--- a/libc/src/stdlib/atexit.cpp
+++ b/libc/src/stdlib/atexit.cpp
@@ -9,12 +9,13 @@
 #include "src/stdlib/atexit.h"
 #include "hdr/types/atexithandler_t.h"
 #include "src/__support/common.h"
+#include "src/__support/macros/attributes.h"
 #include "src/__support/macros/config.h"
 #include "src/stdlib/exit_handler.h"
 
 namespace LIBC_NAMESPACE_DECL {
 
-constinit ExitCallbackList atexit_callbacks;
+LIBC_CONSTINIT ExitCallbackList atexit_callbacks;
 Mutex handler_list_mtx(/*is_priority_inherit=*/false, /*is_recursive=*/false,
                        /*is_robust=*/false, /*is_pshared=*/false);
 


        


More information about the llvm-branch-commits mailing list