When casting from function pointer which takes some parameters and returns void to function pointer which returns non-void and may take some parameters, then gcc throws following warning:
warning: wspiapi.h:50:20: warning: cast between incompatible function types from ‘void (__attribute__((stdcall)) *)(struct addrinfo *)’ to ‘int (__attribute__((stdcall)) *)()’ [-Wcast-function-type] Avoid this warning by first casting to (void(*)(void)) pointer and then to final (FARPROC) function pointer. Casting from and to (void(*)(void)) gcc and clang does not throw incompatible cast warnings. See: https://gcc.gnu.org/gcc-14/porting_to.html#incompatible-pointer-types --- mingw-w64-crt/libsrc/wspiapi/WspiapiFreeAddrInfo.c | 2 +- mingw-w64-headers/include/wspiapi.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mingw-w64-crt/libsrc/wspiapi/WspiapiFreeAddrInfo.c b/mingw-w64-crt/libsrc/wspiapi/WspiapiFreeAddrInfo.c index 8ac613567716..10db4c1b8a51 100644 --- a/mingw-w64-crt/libsrc/wspiapi/WspiapiFreeAddrInfo.c +++ b/mingw-w64-crt/libsrc/wspiapi/WspiapiFreeAddrInfo.c @@ -12,6 +12,6 @@ WspiapiFreeAddrInfo (struct addrinfo *ai) static WSPIAPI_PFREEADDRINFO pfFreeAddrInfo = NULL; if (!pfFreeAddrInfo) - pfFreeAddrInfo = (WSPIAPI_PFREEADDRINFO) WspiapiLoad(2); + pfFreeAddrInfo = (WSPIAPI_PFREEADDRINFO)(void(*)(void)) WspiapiLoad(2); (*pfFreeAddrInfo) (ai); } diff --git a/mingw-w64-headers/include/wspiapi.h b/mingw-w64-headers/include/wspiapi.h index c95c46abcc54..80be549d4135 100644 --- a/mingw-w64-headers/include/wspiapi.h +++ b/mingw-w64-headers/include/wspiapi.h @@ -45,9 +45,9 @@ extern "C" { FARPROC pfAddress; } WSPIAPI_FUNCTION; -#define WSPIAPI_FUNCTION_ARRAY { { "getaddrinfo",(FARPROC) WspiapiLegacyGetAddrInfo }, \ - { "getnameinfo",(FARPROC) WspiapiLegacyGetNameInfo }, \ - { "freeaddrinfo",(FARPROC) WspiapiLegacyFreeAddrInfo } } +#define WSPIAPI_FUNCTION_ARRAY { { "getaddrinfo",(FARPROC)(void(*)(void)) WspiapiLegacyGetAddrInfo }, \ + { "getnameinfo",(FARPROC)(void(*)(void)) WspiapiLegacyGetNameInfo }, \ + { "freeaddrinfo",(FARPROC)(void(*)(void)) WspiapiLegacyFreeAddrInfo } } char *WINAPI WspiapiStrdup (const char *pszString); WINBOOL WINAPI WspiapiParseV4Address (const char *pszAddress,PDWORD pdwAddress); -- 2.20.1 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public