diff options
Diffstat (limited to 'winsup/cygwin/dll_init.cc')
-rw-r--r-- | winsup/cygwin/dll_init.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/dll_init.cc b/winsup/cygwin/dll_init.cc index 7d35c1633..7c7fc6407 100644 --- a/winsup/cygwin/dll_init.cc +++ b/winsup/cygwin/dll_init.cc @@ -404,7 +404,12 @@ dll_noncygwin_dllcrt0 (HMODULE h, per_process *p) extern "C" void cygwin_detach_dll (dll *) { - dlls.detach ((HANDLE) _my_tls.retaddr ()); + HANDLE retaddr; + if (_my_tls.isinitialized ()) + retaddr = (HANDLE) _my_tls.retaddr (); + else + retaddr = __builtin_return_address (0); + dlls.detach (retaddr); } extern "C" void |