From 60776a0515c2a8f572902ad5bcc9f63eeaeafa84 Mon Sep 17 00:00:00 2001 From: Marcel Raad Date: Mon, 9 Jul 2018 18:43:55 +0200 Subject: [PATCH] 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 --- docs/examples/sslbackend.c | 4 ++-- m4/curl-compilers.m4 | 1 + src/tool_cb_see.c | 4 +++- tests/libtest/lib650.c | 5 ++++- tests/server/sockfilt.c | 3 ++- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/docs/examples/sslbackend.c b/docs/examples/sslbackend.c index 1483dcc2e..c1489a9aa 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 c1ae6a559..63e45f3e0 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 621d440f4..061b2bb3d 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 056270cfb..79d60b624 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 2fb947f15..10a16ef00 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;