[PATCH] D48742: Set _LIBCPP_TLS_DESTRUCTOR_CC convention to run_dtors

Pirama Arumuga Nainar via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 28 14:32:13 PDT 2018


pirama created this revision.
pirama added reviewers: EricWF, srhines, danalbert.
Herald added subscribers: ldionne, christof.

This function is passed as the __at_exit parameter to
__libcpp_tls_create.  This parameter is marked with the
_LIBCPP_TLS_DESTRUCTOR_CC attribute.  The macro is empty for pthread,
and set to __stdcall for other threading models.  __stdcall is in turn
emptry for most cases.  That's likely why this doesn't fail now.

The one exception is Windows on i686 with the Win32 threading API, where
the stdcall calling convention is used.


Repository:
  rCXXA libc++abi

https://reviews.llvm.org/D48742

Files:
  src/cxa_thread_atexit.cpp


Index: src/cxa_thread_atexit.cpp
===================================================================
--- src/cxa_thread_atexit.cpp
+++ src/cxa_thread_atexit.cpp
@@ -68,7 +68,7 @@
   // Used to trigger destructors on thread exit; value is ignored
   std::__libcpp_tls_key dtors_key;
 
-  void run_dtors(void*) {
+  void _LIBCPP_TLS_DESTRUCTOR_CC run_dtors(void*) {
     while (auto head = dtors) {
       dtors = head->next;
       head->dtor(head->obj);


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48742.153397.patch
Type: text/x-patch
Size: 454 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180628/eb1d653f/attachment.bin>


More information about the cfe-commits mailing list