summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Gallager <egall@gwmail.gwu.edu>2018-02-12 01:42:47 -0500
committerDaniel Stenberg <daniel@haxx.se>2018-04-07 11:18:58 +0200
commita19fefb0706f939d2df7a76704ee549fecb1c4fd (patch)
tree46ffddbc152bbf3753e132af5997df91b146ba3c
parent4e884615d1702914c1ec4c182f94eb9b8efc7a16 (diff)
downloadcurl-a19fefb0706f939d2df7a76704ee549fecb1c4fd.tar.gz
build: add picky compiler warning flags for gcc 6 and 7
-rw-r--r--[-rwxr-xr-x]acinclude.m40
-rw-r--r--lib/curl_addrinfo.c4
-rw-r--r--lib/mime.c5
-rw-r--r--lib/tftp.c2
-rw-r--r--lib/timeval.c2
-rw-r--r--m4/curl-compilers.m417
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.