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

Reply via email to