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);


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);
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D48742: Set ... Pirama Arumuga Nainar via Phabricator via cfe-commits

Reply via email to