From: Marcel Raad Date: Mon, 9 Jul 2018 16:43:55 +0000 (+0200) Subject: curl-compilers: enable -Wbad-function-cast on GCC X-Git-Tag: curl-7_61_1~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=60776a0515c2a8f572902ad5bcc9f63eeaeafa84;p=thirdparty%2Fcurl.git curl-compilers: enable -Wbad-function-cast on GCC This warning used to be enabled only for clang as it's a bit stricter on GCC. Silence the remaining occurrences and enable it on GCC too. Closes https://github.com/curl/curl/pull/2747 --- diff --git a/docs/examples/sslbackend.c b/docs/examples/sslbackend.c index 1483dcc2ea..c1489a9aa9 100644 --- a/docs/examples/sslbackend.c +++ b/docs/examples/sslbackend.c @@ -57,9 +57,9 @@ int main(int argc, char **argv) return 0; } else if(isdigit(*name)) { - curl_sslbackend id = (curl_sslbackend)atoi(name); + int id = atoi(name); - result = curl_global_sslset(id, NULL, NULL); + result = curl_global_sslset((curl_sslbackend)id, NULL, NULL); } else result = curl_global_sslset(-1, name, NULL); diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4 index c1ae6a559b..63e45f3e0e 100644 --- a/m4/curl-compilers.m4 +++ b/m4/curl-compilers.m4 @@ -977,6 +977,7 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [ dnl Only gcc 2.95 or later if test "$compiler_num" -ge "295"; then tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" + tmp_CFLAGS="$tmp_CFLAGS -Wbad-function-cast" fi # dnl Only gcc 2.96 or later diff --git a/src/tool_cb_see.c b/src/tool_cb_see.c index 621d440f4f..061b2bb3dd 100644 --- a/src/tool_cb_see.c +++ b/src/tool_cb_see.c @@ -118,10 +118,12 @@ int tool_seek_cb(void *userdata, curl_off_t offset, int whence) int tool_ftruncate64(int fd, curl_off_t where) { + intptr_t handle = _get_osfhandle(fd); + if(_lseeki64(fd, where, SEEK_SET) < 0) return -1; - if(!SetEndOfFile((HANDLE)_get_osfhandle(fd))) + if(!SetEndOfFile((HANDLE)handle)) return -1; return 0; diff --git a/tests/libtest/lib650.c b/tests/libtest/lib650.c index 056270cfb7..79d60b624e 100644 --- a/tests/libtest/lib650.c +++ b/tests/libtest/lib650.c @@ -62,6 +62,7 @@ int test(char *URL) struct curl_forms formarray[3]; size_t formlength = 0; char flbuf[32]; + long contentlength = 0; if(curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { fprintf(stderr, "curl_global_init() failed\n"); @@ -94,11 +95,13 @@ int test(char *URL) goto test_cleanup; } + contentlength = (long)(strlen(data) - 1); + /* Use a form array for the non-copy test. */ formarray[0].option = CURLFORM_PTRCONTENTS; formarray[0].value = data; formarray[1].option = CURLFORM_CONTENTSLENGTH; - formarray[1].value = (char *) strlen(data) - 1; + formarray[1].value = (char *)(size_t)contentlength; formarray[2].option = CURLFORM_END; formarray[2].value = NULL; formrc = curl_formadd(&formpost, diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c index 2fb947f15e..10a16ef00f 100644 --- a/tests/server/sockfilt.c +++ b/tests/server/sockfilt.c @@ -782,8 +782,9 @@ static int select_ws(int nfds, fd_set *readfds, fd_set *writefds, wsa++; } else { + curl_socket_t socket = curlx_sitosk(fds); WSACloseEvent(wsaevent); - handle = (HANDLE) curlx_sitosk(fds); + handle = (HANDLE) socket; handle = select_ws_wait(handle, waitevent); handles[nfd] = handle; data[thd].thread = handle;