1
0
mirror of https://github.com/moparisthebest/curl synced 2024-11-17 15:05:02 -05:00

lib: fix -Wassign-enum warnings

configure --enable-debug now enables -Wassign-enum with clang,
identifying several enum "abuses" also fixed.

Reported-by: Gisle Vanem
Bug: 879007f811 (commitcomment-42087553)

Closes #5929
This commit is contained in:
Daniel Stenberg 2020-09-07 10:52:48 +02:00
parent ad425d3e3e
commit 17fcdf6a31
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
15 changed files with 53 additions and 48 deletions

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -47,7 +47,7 @@ int main(int argc, char **argv)
const curl_ssl_backend **list; const curl_ssl_backend **list;
int i; int i;
result = curl_global_sslset(-1, NULL, &list); result = curl_global_sslset((curl_sslbackend)-1, NULL, &list);
assert(result == CURLSSLSET_UNKNOWN_BACKEND); assert(result == CURLSSLSET_UNKNOWN_BACKEND);
for(i = 0; list[i]; i++) for(i = 0; list[i]; i++)
@ -62,7 +62,7 @@ int main(int argc, char **argv)
result = curl_global_sslset((curl_sslbackend)id, NULL, NULL); result = curl_global_sslset((curl_sslbackend)id, NULL, NULL);
} }
else else
result = curl_global_sslset(-1, name, NULL); result = curl_global_sslset((curl_sslbackend)-1, name, NULL);
if(result == CURLSSLSET_UNKNOWN_BACKEND) { if(result == CURLSSLSET_UNKNOWN_BACKEND) {
fprintf(stderr, "Unknown SSL backend id: %s\n", name); fprintf(stderr, "Unknown SSL backend id: %s\n", name);

View File

@ -332,7 +332,7 @@ struct curl_easyoption Curl_easyopts[] = {
{"XFERINFODATA", CURLOPT_XFERINFODATA, CURLOT_CBPTR, 0}, {"XFERINFODATA", CURLOPT_XFERINFODATA, CURLOT_CBPTR, 0},
{"XFERINFOFUNCTION", CURLOPT_XFERINFOFUNCTION, CURLOT_FUNCTION, 0}, {"XFERINFOFUNCTION", CURLOPT_XFERINFOFUNCTION, CURLOT_FUNCTION, 0},
{"XOAUTH2_BEARER", CURLOPT_XOAUTH2_BEARER, CURLOT_STRING, 0}, {"XOAUTH2_BEARER", CURLOPT_XOAUTH2_BEARER, CURLOT_STRING, 0},
{NULL, 0, 0, 0} /* end of table */ {NULL, CURLOPT_LASTENTRY, 0, 0} /* end of table */
}; };
#ifdef DEBUGBUILD #ifdef DEBUGBUILD

View File

@ -101,7 +101,7 @@ for my $name (sort @names) {
} }
print <<FOOT print <<FOOT
{NULL, 0, 0, 0} /* end of table */ {NULL, CURLOPT_LASTENTRY, 0, 0} /* end of table */
}; };
#ifdef DEBUGBUILD #ifdef DEBUGBUILD

View File

@ -7,10 +7,10 @@
* rewrite to work around the paragraph 2 in the BSD licenses as explained * rewrite to work around the paragraph 2 in the BSD licenses as explained
* below. * below.
* *
* Copyright (c) 1998, 1999, 2017 Kungliga Tekniska Högskolan * Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden). * (Royal Institute of Technology, Stockholm, Sweden).
* *
* Copyright (C) 2001 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 2001 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* All rights reserved. * All rights reserved.
* *
@ -529,7 +529,7 @@ static CURLcode choose_mech(struct connectdata *conn)
if(ret != AUTH_CONTINUE) { if(ret != AUTH_CONTINUE) {
if(ret != AUTH_OK) { if(ret != AUTH_OK) {
/* Mechanism has dumped the error to stderr, don't error here. */ /* Mechanism has dumped the error to stderr, don't error here. */
return -1; return CURLE_USE_SSL_FAILED;
} }
DEBUGASSERT(ret == AUTH_OK); DEBUGASSERT(ret == AUTH_OK);

View File

@ -304,7 +304,7 @@ static gnutls_x509_crt_fmt_t do_file_type(const char *type)
return GNUTLS_X509_FMT_PEM; return GNUTLS_X509_FMT_PEM;
if(strcasecompare(type, "DER")) if(strcasecompare(type, "DER"))
return GNUTLS_X509_FMT_DER; return GNUTLS_X509_FMT_DER;
return -1; return GNUTLS_X509_FMT_PEM; /* default to PEM */
} }
#define GNUTLS_CIPHERS "NORMAL:-ARCFOUR-128:-CTYPE-ALL:+CTYPE-X509" #define GNUTLS_CIPHERS "NORMAL:-ARCFOUR-128:-CTYPE-ALL:+CTYPE-X509"

View File

@ -1672,7 +1672,8 @@ static CURLcode nss_load_ca_certificates(struct connectdata *conn,
if(!dir) if(!dir)
return CURLE_SSL_CACERT_BADFILE; return CURLE_SSL_CACERT_BADFILE;
while((entry = PR_ReadDir(dir, PR_SKIP_BOTH | PR_SKIP_HIDDEN))) { while((entry =
PR_ReadDir(dir, (PRDirFlags)(PR_SKIP_BOTH | PR_SKIP_HIDDEN)))) {
char *fullpath = aprintf("%s/%s", capath, entry->name); char *fullpath = aprintf("%s/%s", capath, entry->name);
if(!fullpath) { if(!fullpath) {
PR_CloseDir(dir); PR_CloseDir(dir);

View File

@ -945,6 +945,10 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
tmp_CFLAGS="$tmp_CFLAGS -Wno-varargs" tmp_CFLAGS="$tmp_CFLAGS -Wno-varargs"
fi fi
fi fi
dnl clang 7 or later
if test "$compiler_num" -ge "700"; then
CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [assign-enum])
fi
fi fi
;; ;;
# #

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -31,12 +31,12 @@ int test(char *URL)
CURLSHcode shareret; CURLSHcode shareret;
(void)URL; (void)URL;
curl_easy_strerror(INT_MAX); curl_easy_strerror((CURLcode)INT_MAX);
curl_multi_strerror(INT_MAX); curl_multi_strerror((CURLMcode)INT_MAX);
curl_share_strerror(INT_MAX); curl_share_strerror((CURLSHcode)INT_MAX);
curl_easy_strerror(-INT_MAX); curl_easy_strerror((CURLcode)-INT_MAX);
curl_multi_strerror(-INT_MAX); curl_multi_strerror((CURLMcode)-INT_MAX);
curl_share_strerror(-INT_MAX); curl_share_strerror((CURLSHcode)-INT_MAX);
for(easyret = CURLE_OK; easyret <= CURL_LAST; easyret++) { for(easyret = CURLE_OK; easyret <= CURL_LAST; easyret++) {
printf("e%d: %s\n", (int)easyret, curl_easy_strerror(easyret)); printf("e%d: %s\n", (int)easyret, curl_easy_strerror(easyret));
} }

View File

@ -638,7 +638,7 @@ static CURLUPart part2id(char *part)
return CURLUPART_FRAGMENT; return CURLUPART_FRAGMENT;
if(!strcmp("zoneid", part)) if(!strcmp("zoneid", part))
return CURLUPART_ZONEID; return CURLUPART_ZONEID;
return 9999; /* bad input => bad output */ return (CURLUPart)9999; /* bad input => bad output */
} }
static CURLUcode updateurl(CURLU *u, const char *cmd, unsigned int setflags) static CURLUcode updateurl(CURLU *u, const char *cmd, unsigned int setflags)

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -43,7 +43,7 @@ int test(char *URL)
int stillRunning; int stillRunning;
CURLM *multiHandle = NULL; CURLM *multiHandle = NULL;
CURL *curl = NULL; CURL *curl = NULL;
CURLMcode res = CURLM_OK; CURLcode res = CURLE_OK;
int timeout; int timeout;
global_init(CURL_GLOBAL_ALL); global_init(CURL_GLOBAL_ALL);

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -96,7 +96,7 @@ int test(char *URL)
} }
if(iolen != 0) if(iolen != 0)
res = TEST_ERR_FAILURE; res = (CURLcode)TEST_ERR_FAILURE;
} }
test_cleanup: test_cleanup:

View File

@ -35,7 +35,7 @@ int test(char *URL)
int stillRunning; int stillRunning;
CURLM *multiHandle = NULL; CURLM *multiHandle = NULL;
CURL *curl = NULL; CURL *curl = NULL;
CURLMcode res = CURLM_OK; CURLcode res = CURLE_OK;
global_init(CURL_GLOBAL_ALL); global_init(CURL_GLOBAL_ALL);

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms

View File

@ -297,7 +297,7 @@ while(<STDIN>) {
print <<FOOTER print <<FOOTER
curl_easy_setopt(curl, 1, 0); curl_easy_setopt(curl, (CURLoption)1, 0);
res = CURLE_OK; res = CURLE_OK;
test_cleanup: test_cleanup:
curl_easy_cleanup(curl); curl_easy_cleanup(curl);

View File

@ -86,18 +86,18 @@ extern int unitfail;
** For portability reasons TEST_ERR_* values should be less than 127. ** For portability reasons TEST_ERR_* values should be less than 127.
*/ */
#define TEST_ERR_MAJOR_BAD 126 #define TEST_ERR_MAJOR_BAD (CURLcode) 126
#define TEST_ERR_RUNS_FOREVER 125 #define TEST_ERR_RUNS_FOREVER (CURLcode) 125
#define TEST_ERR_EASY_INIT 124 #define TEST_ERR_EASY_INIT (CURLcode) 124
#define TEST_ERR_MULTI_INIT 123 #define TEST_ERR_MULTI (CURLcode) 123
#define TEST_ERR_NUM_HANDLES 122 #define TEST_ERR_NUM_HANDLES (CURLcode) 122
#define TEST_ERR_SELECT 121 #define TEST_ERR_SELECT (CURLcode) 121
#define TEST_ERR_SUCCESS 120 #define TEST_ERR_SUCCESS (CURLcode) 120
#define TEST_ERR_FAILURE 119 #define TEST_ERR_FAILURE (CURLcode) 119
#define TEST_ERR_USAGE 118 #define TEST_ERR_USAGE (CURLcode) 118
#define TEST_ERR_FOPEN 117 #define TEST_ERR_FOPEN (CURLcode) 117
#define TEST_ERR_FSTAT 116 #define TEST_ERR_FSTAT (CURLcode) 116
#define TEST_ERR_BAD_TIMEOUT 115 #define TEST_ERR_BAD_TIMEOUT (CURLcode) 115
/* /*
** Macros for test source code readability/maintainability. ** Macros for test source code readability/maintainability.
@ -154,7 +154,7 @@ extern int unitfail;
#define exe_multi_init(A,Y,Z) do { \ #define exe_multi_init(A,Y,Z) do { \
if(((A) = curl_multi_init()) == NULL) { \ if(((A) = curl_multi_init()) == NULL) { \
fprintf(stderr, "%s:%d curl_multi_init() failed\n", (Y), (Z)); \ fprintf(stderr, "%s:%d curl_multi_init() failed\n", (Y), (Z)); \
res = TEST_ERR_MULTI_INIT; \ res = TEST_ERR_MULTI; \
} \ } \
} while(0) } while(0)
@ -178,7 +178,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_easy_setopt() failed, " \ fprintf(stderr, "%s:%d curl_easy_setopt() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_easy_strerror(ec)); \ (Y), (Z), (int)ec, curl_easy_strerror(ec)); \
res = (int)ec; \ res = ec; \
} \ } \
} while(0) } while(0)
@ -202,7 +202,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_multi_setopt() failed, " \ fprintf(stderr, "%s:%d curl_multi_setopt() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_multi_strerror(ec)); \ (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
res = (int)ec; \ res = TEST_ERR_MULTI; \
} \ } \
} while(0) } while(0)
@ -226,7 +226,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_multi_add_handle() failed, " \ fprintf(stderr, "%s:%d curl_multi_add_handle() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_multi_strerror(ec)); \ (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
res = (int)ec; \ res = TEST_ERR_MULTI; \
} \ } \
} while(0) } while(0)
@ -250,7 +250,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_multi_remove_handle() failed, " \ fprintf(stderr, "%s:%d curl_multi_remove_handle() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_multi_strerror(ec)); \ (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
res = (int)ec; \ res = TEST_ERR_MULTI; \
} \ } \
} while(0) } while(0)
@ -275,7 +275,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_multi_perform() failed, " \ fprintf(stderr, "%s:%d curl_multi_perform() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_multi_strerror(ec)); \ (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
res = (int)ec; \ res = TEST_ERR_MULTI; \
} \ } \
else if(*((B)) < 0) { \ else if(*((B)) < 0) { \
fprintf(stderr, "%s:%d curl_multi_perform() succeeded, " \ fprintf(stderr, "%s:%d curl_multi_perform() succeeded, " \
@ -305,7 +305,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_multi_fdset() failed, " \ fprintf(stderr, "%s:%d curl_multi_fdset() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_multi_strerror(ec)); \ (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
res = (int)ec; \ res = TEST_ERR_MULTI; \
} \ } \
else if(*((E)) < -1) { \ else if(*((E)) < -1) { \
fprintf(stderr, "%s:%d curl_multi_fdset() succeeded, " \ fprintf(stderr, "%s:%d curl_multi_fdset() succeeded, " \
@ -335,7 +335,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_multi_timeout() failed, " \ fprintf(stderr, "%s:%d curl_multi_timeout() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_multi_strerror(ec)); \ (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
res = (int)ec; \ res = TEST_ERR_BAD_TIMEOUT; \
} \ } \
else if(*((B)) < -1L) { \ else if(*((B)) < -1L) { \
fprintf(stderr, "%s:%d curl_multi_timeout() succeeded, " \ fprintf(stderr, "%s:%d curl_multi_timeout() succeeded, " \
@ -365,7 +365,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_multi_poll() failed, " \ fprintf(stderr, "%s:%d curl_multi_poll() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_multi_strerror(ec)); \ (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
res = (int)ec; \ res = TEST_ERR_MULTI; \
} \ } \
else if(*((E)) < 0) { \ else if(*((E)) < 0) { \
fprintf(stderr, "%s:%d curl_multi_poll() succeeded, " \ fprintf(stderr, "%s:%d curl_multi_poll() succeeded, " \
@ -395,7 +395,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_multi_wakeup() failed, " \ fprintf(stderr, "%s:%d curl_multi_wakeup() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_multi_strerror(ec)); \ (Y), (Z), (int)ec, curl_multi_strerror(ec)); \
res = (int)ec; \ res = TEST_ERR_MULTI; \
} \ } \
} while(0) } while(0)
@ -470,7 +470,7 @@ extern int unitfail;
fprintf(stderr, "%s:%d curl_global_init() failed, " \ fprintf(stderr, "%s:%d curl_global_init() failed, " \
"with code %d (%s)\n", \ "with code %d (%s)\n", \
(Y), (Z), (int)ec, curl_easy_strerror(ec)); \ (Y), (Z), (int)ec, curl_easy_strerror(ec)); \
res = (int)ec; \ res = ec; \
} \ } \
} while(0) } while(0)