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
* 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;
int i;
result = curl_global_sslset(-1, NULL, &list);
result = curl_global_sslset((curl_sslbackend)-1, NULL, &list);
assert(result == CURLSSLSET_UNKNOWN_BACKEND);
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);
}
else
result = curl_global_sslset(-1, name, NULL);
result = curl_global_sslset((curl_sslbackend)-1, name, NULL);
if(result == CURLSSLSET_UNKNOWN_BACKEND) {
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},
{"XFERINFOFUNCTION", CURLOPT_XFERINFOFUNCTION, CURLOT_FUNCTION, 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

View File

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

View File

@ -7,10 +7,10 @@
* rewrite to work around the paragraph 2 in the BSD licenses as explained
* below.
*
* Copyright (c) 1998, 1999, 2017 Kungliga Tekniska Högskolan
* Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan
* (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.
*
@ -529,7 +529,7 @@ static CURLcode choose_mech(struct connectdata *conn)
if(ret != AUTH_CONTINUE) {
if(ret != AUTH_OK) {
/* Mechanism has dumped the error to stderr, don't error here. */
return -1;
return CURLE_USE_SSL_FAILED;
}
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;
if(strcasecompare(type, "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"

View File

@ -1672,7 +1672,8 @@ static CURLcode nss_load_ca_certificates(struct connectdata *conn,
if(!dir)
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);
if(!fullpath) {
PR_CloseDir(dir);

View File

@ -945,6 +945,10 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [
tmp_CFLAGS="$tmp_CFLAGS -Wno-varargs"
fi
fi
dnl clang 7 or later
if test "$compiler_num" -ge "700"; then
CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [assign-enum])
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
* you should have received as part of this distribution. The terms
@ -31,12 +31,12 @@ int test(char *URL)
CURLSHcode shareret;
(void)URL;
curl_easy_strerror(INT_MAX);
curl_multi_strerror(INT_MAX);
curl_share_strerror(INT_MAX);
curl_easy_strerror(-INT_MAX);
curl_multi_strerror(-INT_MAX);
curl_share_strerror(-INT_MAX);
curl_easy_strerror((CURLcode)INT_MAX);
curl_multi_strerror((CURLMcode)INT_MAX);
curl_share_strerror((CURLSHcode)INT_MAX);
curl_easy_strerror((CURLcode)-INT_MAX);
curl_multi_strerror((CURLMcode)-INT_MAX);
curl_share_strerror((CURLSHcode)-INT_MAX);
for(easyret = CURLE_OK; easyret <= CURL_LAST; 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;
if(!strcmp("zoneid", part))
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)

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
* you should have received as part of this distribution. The terms
@ -43,7 +43,7 @@ int test(char *URL)
int stillRunning;
CURLM *multiHandle = NULL;
CURL *curl = NULL;
CURLMcode res = CURLM_OK;
CURLcode res = CURLE_OK;
int timeout;
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
* you should have received as part of this distribution. The terms
@ -96,7 +96,7 @@ int test(char *URL)
}
if(iolen != 0)
res = TEST_ERR_FAILURE;
res = (CURLcode)TEST_ERR_FAILURE;
}
test_cleanup:

View File

@ -35,7 +35,7 @@ int test(char *URL)
int stillRunning;
CURLM *multiHandle = NULL;
CURL *curl = NULL;
CURLMcode res = CURLM_OK;
CURLcode res = CURLE_OK;
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
* you should have received as part of this distribution. The terms

View File

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

View File

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