diff options
author | Eric Gallager <egall@gwmail.gwu.edu> | 2018-02-12 01:42:47 -0500 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2018-04-07 11:18:58 +0200 |
commit | a19fefb0706f939d2df7a76704ee549fecb1c4fd (patch) | |
tree | 46ffddbc152bbf3753e132af5997df91b146ba3c | |
parent | 4e884615d1702914c1ec4c182f94eb9b8efc7a16 (diff) |
build: add picky compiler warning flags for gcc 6 and 7
-rw-r--r--[-rwxr-xr-x] | acinclude.m4 | 0 | ||||
-rw-r--r-- | lib/curl_addrinfo.c | 4 | ||||
-rw-r--r-- | lib/mime.c | 5 | ||||
-rw-r--r-- | lib/tftp.c | 2 | ||||
-rw-r--r-- | lib/timeval.c | 2 | ||||
-rw-r--r-- | m4/curl-compilers.m4 | 17 |
6 files changed, 25 insertions, 5 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 69bb6c002..69bb6c002 100755..100644 --- a/acinclude.m4 +++ b/acinclude.m4 diff --git a/lib/curl_addrinfo.c b/lib/curl_addrinfo.c index 95a3f1050..01775f704 100644 --- a/lib/curl_addrinfo.c +++ b/lib/curl_addrinfo.c @@ -345,7 +345,7 @@ Curl_he2ai(const struct hostent *he, int port) addr = (void *)ai->ai_addr; /* storage area for this info */ memcpy(&addr->sin_addr, curr, sizeof(struct in_addr)); - addr->sin_family = (unsigned short)(he->h_addrtype); + addr->sin_family = (sa_family_t)(he->h_addrtype); addr->sin_port = htons((unsigned short)port); break; @@ -354,7 +354,7 @@ Curl_he2ai(const struct hostent *he, int port) addr6 = (void *)ai->ai_addr; /* storage area for this info */ memcpy(&addr6->sin6_addr, curr, sizeof(struct in6_addr)); - addr6->sin6_family = (unsigned short)(he->h_addrtype); + addr6->sin6_family = (sa_family_t)(he->h_addrtype); addr6->sin6_port = htons((unsigned short)port); break; #endif diff --git a/lib/mime.c b/lib/mime.c index 89819a935..ce56d7873 100644 --- a/lib/mime.c +++ b/lib/mime.c @@ -1193,7 +1193,10 @@ CURLcode Curl_mime_duppart(curl_mimepart *dst, const curl_mimepart *src) } /* Duplicate other fields. */ - dst->encoder = src->encoder; + if(dst != NULL) + dst->encoder = src->encoder; + else + res = CURLE_WRITE_ERROR; if(!res) res = curl_mime_type(dst, src->mimetype); if(!res) diff --git a/lib/tftp.c b/lib/tftp.c index 20dc60040..7fd7b3751 100644 --- a/lib/tftp.c +++ b/lib/tftp.c @@ -1010,7 +1010,7 @@ static CURLcode tftp_connect(struct connectdata *conn, bool *done) state->requested_blksize = blksize; ((struct sockaddr *)&state->local_addr)->sa_family = - (unsigned short)(conn->ip_addr->ai_family); + (sa_family_t)(conn->ip_addr->ai_family); tftp_set_timeouts(state); diff --git a/lib/timeval.c b/lib/timeval.c index d11b95197..f4bf83531 100644 --- a/lib/timeval.c +++ b/lib/timeval.c @@ -110,7 +110,7 @@ struct curltime Curl_now(void) usecs /= 1000; cnow.tv_sec = usecs / 1000000; - cnow.tv_usec = usecs % 1000000; + cnow.tv_usec = (int)(usecs % 1000000); return cnow; } diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4 index 422946e26..20bdbd706 100644 --- a/m4/curl-compilers.m4 +++ b/m4/curl-compilers.m4 @@ -1044,6 +1044,23 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [ tmp_CFLAGS="$tmp_CFLAGS -Wdouble-promotion" fi # + dnl Only gcc 6 or later + if test "$compiler_num" -ge "600"; then + tmp_CFLAGS="$tmp_CFLAGS -Wshift-negative-value" + tmp_CFLAGS="$tmp_CFLAGS -Wshift-overflow=2" + tmp_CFLAGS="$tmp_CFLAGS -Wnull-dereference" + tmp_CFLAGS="$tmp_CFLAGS -Wduplicated-cond" + fi + # + dnl Only gcc 7 or later + if test "$compiler_num" -ge "700"; then + tmp_CFLAGS="$tmp_CFLAGS -Wduplicated-branches" + tmp_CFLAGS="$tmp_CFLAGS -Wrestrict" + tmp_CFLAGS="$tmp_CFLAGS -Walloc-zero" + tmp_CFLAGS="$tmp_CFLAGS -Wformat-overflow=2" + tmp_CFLAGS="$tmp_CFLAGS -Wformat-truncation=2" + fi + # fi # dnl Do not issue warnings for code in system include paths. |