build: fix some -Wsign-conversion/-Warith-conversion warnings

- enable `-Wsign-conversion` warnings, but also setting them to not
  raise errors.
- fix `-Warith-conversion` warnings seen in CI.
  These are triggered by `-Wsign-converion` and causing errors unless
  explicitly silenced. It makes more sense to fix them, there just a few
  of them.
- fix some `-Wsign-conversion` warnings.
- hide `-Wsign-conversion` warnings with a `#pragma`.
- add macro `CURL_WARN_SIGN_CONVERSION` to unhide them on a per-build
  basis.
- update a CI job to unhide them with the above macro:
  https://github.com/curl/curl/actions/workflows/linux.yml -> OpenSSL -O3

Closes #12492
This commit is contained in:
Viktor Szakats 2023-12-09 02:45:19 +00:00
parent 68d80a8f9b
commit 2dbe75bd7f
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
17 changed files with 56 additions and 42 deletions

View file

@ -65,12 +65,16 @@ int select_wrapper(int nfds, fd_set *rd, fd_set *wr, fd_set *exc,
void wait_ms(int ms)
{
if(ms < 0)
return;
#ifdef USE_WINSOCK
Sleep(ms);
Sleep((DWORD)ms);
#else
struct timeval t;
curlx_mstotv(&t, ms);
select_wrapper(0, NULL, NULL, NULL, &t);
{
struct timeval t;
curlx_mstotv(&t, ms);
select_wrapper(0, NULL, NULL, NULL, &t);
}
#endif
}

View file

@ -1045,7 +1045,7 @@ static CURLUcode updateurl(CURLU *u, const char *cmd, unsigned int setflags)
while(p) {
char *e = strchr(p, ',');
if(e) {
size_t n = e-p;
size_t n = (size_t)(e - p);
char buf[80];
char part[80];
char value[80];

View file

@ -39,7 +39,7 @@ int test(char *URL)
CURLcode res = CURLE_OK;
struct curl_header *h;
int count = 0;
int origins;
unsigned int origins;
global_init(CURL_GLOBAL_DEFAULT);

View file

@ -37,8 +37,8 @@ struct timeval tutil_tvnow(void)
*/
struct timeval now;
DWORD milliseconds = GetTickCount();
now.tv_sec = milliseconds / 1000;
now.tv_usec = (milliseconds % 1000) * 1000;
now.tv_sec = (long)(milliseconds / 1000);
now.tv_usec = (long)((milliseconds % 1000) * 1000);
return now;
}