build: delete/replace clang warning pragmas

- delete redundant warning suppressions for `-Wformat-nonliteral`.
  This now relies on `CURL_PRINTF()` and it's theoratically possible
  that this macro isn't active but the warning is. We're ignoring this
  as a corner-case here.

- replace two pragmas with code changes to avoid the warnings.

Follow-up to aee4ebe591 #12803
Follow-up to 0923012758 #12540
Follow-up to 3829759bd0 #12489

Reviewed-by: Daniel Stenberg
Closes #12812
This commit is contained in:
Viktor Szakats 2024-01-27 17:40:38 +00:00
Родитель ecb5d6bee9
Коммит 5b286c2508
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5ABD165E2AEF201
9 изменённых файлов: 5 добавлений и 87 удалений

Просмотреть файл

@ -92,14 +92,7 @@ void Curl_failf(struct Curl_easy *data, const char *fmt, ...)
int len;
char error[CURL_ERROR_SIZE + 2];
va_start(ap, fmt);
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
len = mvsnprintf(error, CURL_ERROR_SIZE, fmt, ap);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
if(data->set.errorbuffer && !data->state.errorbuf) {
strcpy(data->set.errorbuffer, error);
@ -125,14 +118,7 @@ void Curl_infof(struct Curl_easy *data, const char *fmt, ...)
int len;
char buffer[MAXINFO + 2];
va_start(ap, fmt);
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
len = mvsnprintf(buffer, MAXINFO, fmt, ap);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
va_end(ap);
buffer[len++] = '\n';
buffer[len] = '\0';
@ -150,14 +136,7 @@ void Curl_trc_cf_infof(struct Curl_easy *data, struct Curl_cfilter *cf,
char buffer[MAXINFO + 2];
len = msnprintf(buffer, MAXINFO, "[%s] ", cf->cft->name);
va_start(ap, fmt);
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
len += mvsnprintf(buffer + len, MAXINFO - len, fmt, ap);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
va_end(ap);
buffer[len++] = '\n';
buffer[len] = '\0';

Просмотреть файл

@ -135,14 +135,7 @@ static CURLcode sendf(curl_socket_t sockfd, struct Curl_easy *data,
char *sptr;
va_list ap;
va_start(ap, fmt);
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
s = vaprintf(fmt, ap); /* returns an allocated string */
#ifdef __clang__
#pragma clang diagnostic pop
#endif
va_end(ap);
if(!s)
return CURLE_OUT_OF_MEMORY; /* failure */

Просмотреть файл

@ -204,14 +204,7 @@ CURLcode Curl_dyn_vaddf(struct dynbuf *s, const char *fmt, va_list ap)
return CURLE_OUT_OF_MEMORY;
#else
char *str;
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
str = vaprintf(fmt, ap); /* this allocs a new string to append */
#ifdef __clang__
#pragma clang diagnostic pop
#endif
if(str) {
CURLcode result = dyn_nappend(s, (unsigned char *)str, strlen(str));

Просмотреть файл

@ -448,14 +448,7 @@ void curl_dbg_log(const char *format, ...)
return;
va_start(ap, format);
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
nchars = mvsnprintf(buf, LOGLINE_BUFSIZE, format, ap);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
va_end(ap);
if(nchars > LOGLINE_BUFSIZE - 1)

Просмотреть файл

@ -1677,14 +1677,7 @@ CURLcode Curl_mime_add_header(struct curl_slist **slp, const char *fmt, ...)
va_list ap;
va_start(ap, fmt);
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
s = curl_mvaprintf(fmt, ap);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
va_end(ap);
if(s) {

Просмотреть файл

@ -113,14 +113,7 @@ CURLcode easysrc_addf(struct slist_wc **plist, const char *fmt, ...)
char *bufp;
va_list ap;
va_start(ap, fmt);
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
bufp = curlx_mvaprintf(fmt, ap);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
va_end(ap);
if(!bufp) {
ret = CURLE_OUT_OF_MEMORY;

Просмотреть файл

@ -53,14 +53,7 @@ static void voutf(struct GlobalConfig *config,
char *ptr;
char *print_buffer;
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
print_buffer = curlx_mvaprintf(fmt, ap);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
if(!print_buffer)
return;
len = strlen(print_buffer);

Просмотреть файл

@ -240,22 +240,11 @@ static char *c_escape(const char *str, curl_off_t len)
if(p && *p)
result = curlx_dyn_addn(&escaped, to + 2 * (p - from), 2);
else {
const char *format = "\\x%02x";
if(len > 1 && ISXDIGIT(s[1])) {
/* Octal escape to avoid >2 digit hex. */
format = "\\%03o";
}
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
result = curlx_dyn_addf(&escaped, format,
result = curlx_dyn_addf(&escaped,
/* Octal escape to avoid >2 digit hex. */
(len > 1 && ISXDIGIT(s[1])) ?
"\\%03o" : "\\x%02x",
(unsigned int) *(unsigned char *) s);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
}
}
}

Просмотреть файл

@ -1639,7 +1639,6 @@ static char bigpart[120000];
*/
static int huge(void)
{
const char *url = "%s://%s:%s@%s/%s?%s#%s";
const char *smallpart = "c";
int i;
CURLU *urlp = curl_url();
@ -1662,12 +1661,8 @@ static int huge(void)
for(i = 0; i < 7; i++) {
char *partp;
#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat-nonliteral"
#endif
msnprintf(total, sizeof(total),
url,
"%s://%s:%s@%s/%s?%s#%s",
(i == 0)? &bigpart[1] : smallpart,
(i == 1)? &bigpart[1] : smallpart,
(i == 2)? &bigpart[1] : smallpart,
@ -1675,9 +1670,6 @@ static int huge(void)
(i == 4)? &bigpart[1] : smallpart,
(i == 5)? &bigpart[1] : smallpart,
(i == 6)? &bigpart[1] : smallpart);
#ifdef __clang__
#pragma clang diagnostic pop
#endif
rc = curl_url_set(urlp, CURLUPART_URL, total, CURLU_NON_SUPPORT_SCHEME);
if((!i && (rc != CURLUE_BAD_SCHEME)) ||
(i && rc)) {