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