Fixes compile warnings:
crt/tlssup.c:104:53: warning: cast between incompatible function types from
‘BOOL (__attribute__((stdcall)) *)(void *, DWORD, void *)’ to ‘void
(__attribute__((stdcall)) *)(void *, DWORD, void *)’ [-Wcast-function-type]
const PIMAGE_TLS_CALLBACK __dyn_tls_init_callback = (const
PIMAGE_TLS_CALLBACK) __dyn_tls_init;
^
crt/tlssup.c:105:52: warning: cast between incompatible function types from
‘BOOL (__attribute__((stdcall)) *)(void *, DWORD, void *)’ to ‘void
(__attribute__((stdcall)) *)(void *, DWORD, void *)’ [-Wcast-function-type]
_CRTALLOC(".CRT$XLC") PIMAGE_TLS_CALLBACK __xl_c = (PIMAGE_TLS_CALLBACK)
__dyn_tls_init;
^
crt/tlssup.c:171:52: warning: cast between incompatible function types from
‘BOOL (__attribute__((stdcall)) *)(void *, DWORD, void *)’ to ‘void
(__attribute__((stdcall)) *)(void *, DWORD, void *)’ [-Wcast-function-type]
_CRTALLOC(".CRT$XLD") PIMAGE_TLS_CALLBACK __xl_d = (PIMAGE_TLS_CALLBACK)
__dyn_tls_dtor;
^
TLS callback function must return void, not BOOL.
---
mingw-w64-crt/crt/tls_atexit.c | 2 +-
mingw-w64-crt/crt/tlssup.c | 18 +++++++-----------
2 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/mingw-w64-crt/crt/tls_atexit.c b/mingw-w64-crt/crt/tls_atexit.c
index 0412fa4bac77..60c4f513e388 100644
--- a/mingw-w64-crt/crt/tls_atexit.c
+++ b/mingw-w64-crt/crt/tls_atexit.c
@@ -169,4 +169,4 @@ static void WINAPI tls_callback(HANDLE hDllHandle, DWORD
dwReason, LPVOID __UNUS
}
}
-_CRTALLOC(".CRT$XLB") PIMAGE_TLS_CALLBACK __xl_b = (PIMAGE_TLS_CALLBACK)
tls_callback;
+_CRTALLOC(".CRT$XLB") PIMAGE_TLS_CALLBACK __xl_b = tls_callback;
diff --git a/mingw-w64-crt/crt/tlssup.c b/mingw-w64-crt/crt/tlssup.c
index 1b9d7b4a0bfb..27eb862cb2be 100644
--- a/mingw-w64-crt/crt/tlssup.c
+++ b/mingw-w64-crt/crt/tlssup.c
@@ -71,9 +71,7 @@ static __CRT_THREAD TlsDtorNode dtor_list_head;
extern int _CRT_MT;
-BOOL WINAPI __dyn_tls_init (HANDLE, DWORD, LPVOID);
-
-BOOL WINAPI
+static void WINAPI
__dyn_tls_init (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
{
_PVFV *pfunc;
@@ -87,7 +85,7 @@ __dyn_tls_init (HANDLE hDllHandle, DWORD dwReason, LPVOID
lpreserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
__mingw_TLScallback (hDllHandle, dwReason, lpreserved);
- return TRUE;
+ return;
}
ps = (uintptr_t) &__xd_a;
@@ -98,11 +96,10 @@ __dyn_tls_init (HANDLE hDllHandle, DWORD dwReason, LPVOID
lpreserved)
if (*pfunc != NULL)
(*pfunc)();
}
- return TRUE;
}
-const PIMAGE_TLS_CALLBACK __dyn_tls_init_callback = (const
PIMAGE_TLS_CALLBACK) __dyn_tls_init;
-_CRTALLOC(".CRT$XLC") PIMAGE_TLS_CALLBACK __xl_c = (PIMAGE_TLS_CALLBACK)
__dyn_tls_init;
+const PIMAGE_TLS_CALLBACK __dyn_tls_init_callback = __dyn_tls_init;
+_CRTALLOC(".CRT$XLC") PIMAGE_TLS_CALLBACK __xl_c = __dyn_tls_init;
int __cdecl __tlregdtor (_PVFV);
@@ -133,7 +130,7 @@ __tlregdtor (_PVFV func)
return 0;
}
-static BOOL WINAPI
+static void WINAPI
__dyn_tls_dtor (HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
{
#if !defined (DISABLE_MS_TLS)
@@ -142,7 +139,7 @@ __dyn_tls_dtor (HANDLE hDllHandle, DWORD dwReason, LPVOID
lpreserved)
#endif
if (dwReason != DLL_THREAD_DETACH && dwReason != DLL_PROCESS_DETACH)
- return TRUE;
+ return;
/* As TLS variables are detroyed already by DLL_THREAD_DETACH
call, we have to avoid access on the possible DLL_PROCESS_DETACH
call the already destroyed TLS vars.
@@ -165,10 +162,9 @@ __dyn_tls_dtor (HANDLE hDllHandle, DWORD dwReason, LPVOID
lpreserved)
}
#endif
__mingw_TLScallback (hDllHandle, dwReason, lpreserved);
- return TRUE;
}
-_CRTALLOC(".CRT$XLD") PIMAGE_TLS_CALLBACK __xl_d = (PIMAGE_TLS_CALLBACK)
__dyn_tls_dtor;
+_CRTALLOC(".CRT$XLD") PIMAGE_TLS_CALLBACK __xl_d = __dyn_tls_dtor;
int __mingw_initltsdrot_force = 0;
--
2.20.1
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public