diff options
author | Marcel Raad <Marcel.Raad@teamviewer.com> | 2018-08-09 17:19:24 +0200 |
---|---|---|
committer | Marcel Raad <Marcel.Raad@teamviewer.com> | 2018-08-11 19:19:03 +0200 |
commit | 25d2a1bae7871986eabdbe68dc05c5b6473ad4d7 (patch) | |
tree | 5a588c693611fc79f2ff7f3844e3f77ef47ea1c3 | |
parent | 2a278fd73573d025e6d5ebde8b10d446c27d6d3f (diff) |
Silence GCC 8 cast-function-type warnings
On Windows, casting between unrelated function types is fine and
sometimes even necessary, so just use an intermediate cast to
(void (*) (void)) to silence the warning as described in [0].
[0] https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html
Closes https://github.com/curl/curl/pull/2860
-rw-r--r-- | lib/formdata.c | 4 | ||||
-rw-r--r-- | lib/system_win32.c | 5 | ||||
-rw-r--r-- | lib/telnet.c | 4 | ||||
-rw-r--r-- | lib/warnless.h | 3 |
4 files changed, 13 insertions, 3 deletions
diff --git a/lib/formdata.c b/lib/formdata.c index 5731da95c..450a0e5d8 100644 --- a/lib/formdata.c +++ b/lib/formdata.c @@ -39,6 +39,7 @@ #include "sendf.h" #include "strdup.h" #include "rand.h" +#include "warnless.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" #include "curl_memory.h" @@ -878,7 +879,8 @@ CURLcode Curl_getformdata(struct Curl_easy *data, compatibility: use of "-" pseudo file name should be avoided. */ result = curl_mime_data_cb(part, (curl_off_t) -1, (curl_read_callback) fread, - (curl_seek_callback) fseek, + CURLX_FUNCTION_CAST(curl_seek_callback, + fseek), NULL, (void *) stdin); } else diff --git a/lib/system_win32.c b/lib/system_win32.c index 89d648516..6b8004e5b 100644 --- a/lib/system_win32.c +++ b/lib/system_win32.c @@ -26,6 +26,7 @@ #include <curl/curl.h> #include "system_win32.h" +#include "warnless.h" /* The last #include files should be: */ #include "curl_memory.h" @@ -280,7 +281,9 @@ HMODULE Curl_load_library(LPCTSTR filename) /* Attempt to find LoadLibraryEx() which is only available on Windows 2000 and above */ - pLoadLibraryEx = (LOADLIBRARYEX_FN) GetProcAddress(hKernel32, LOADLIBARYEX); + pLoadLibraryEx = + CURLX_FUNCTION_CAST(LOADLIBRARYEX_FN, + (GetProcAddress(hKernel32, LOADLIBARYEX))); /* Detect if there's already a path in the filename and load the library if there is. Note: Both back slashes and forward slashes have been supported diff --git a/lib/telnet.c b/lib/telnet.c index 6a144ed3a..031d61f4e 100644 --- a/lib/telnet.c +++ b/lib/telnet.c @@ -1357,7 +1357,9 @@ static CURLcode telnet_do(struct connectdata *conn, bool *done) } /* Grab a pointer to WSACreateEvent */ - create_event_func = (WSOCK2_EVENT) GetProcAddress(wsock2, "WSACreateEvent"); + create_event_func = + CURLX_FUNCTION_CAST(WSOCK2_EVENT, + (GetProcAddress(wsock2, "WSACreateEvent"))); if(create_event_func == NULL) { failf(data, "failed to find WSACreateEvent function (%u)", GetLastError()); FreeLibrary(wsock2); diff --git a/lib/warnless.h b/lib/warnless.h index f6a2d744b..284ea1e75 100644 --- a/lib/warnless.h +++ b/lib/warnless.h @@ -26,6 +26,9 @@ #include <curl/curl.h> /* for curl_socket_t */ #endif +#define CURLX_FUNCTION_CAST(target_type, func) \ + (target_type)(void (*) (void))(func) + unsigned short curlx_ultous(unsigned long ulnum); unsigned char curlx_ultouc(unsigned long ulnum); |