From: Viktor Szakats Date: Sat, 27 Jan 2024 17:40:38 +0000 (+0000) Subject: build: delete/replace clang warning pragmas X-Git-Tag: curl-8_6_0~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b286c250829e06a135a6ba998e80beb7f43a734;p=thirdparty%2Fcurl.git 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 aee4ebe59161d0a5281743f96e7738ad97fe1cd4 #12803 Follow-up to 09230127589eccc7e01c1a7217787ef8e64f3328 #12540 Follow-up to 3829759bd042c03225ae862062560f568ba1a231 #12489 Reviewed-by: Daniel Stenberg Closes #12812 --- diff --git a/lib/curl_trc.c b/lib/curl_trc.c index 1c49d55356..b8dccc4193 100644 --- a/lib/curl_trc.c +++ b/lib/curl_trc.c @@ -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'; diff --git a/lib/dict.c b/lib/dict.c index 2d6e7e48c5..323984822d 100644 --- a/lib/dict.c +++ b/lib/dict.c @@ -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 */ diff --git a/lib/dynbuf.c b/lib/dynbuf.c index a6a71c5daa..a4c599d10c 100644 --- a/lib/dynbuf.c +++ b/lib/dynbuf.c @@ -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)); diff --git a/lib/memdebug.c b/lib/memdebug.c index f3d4817233..fce933a322 100644 --- a/lib/memdebug.c +++ b/lib/memdebug.c @@ -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) diff --git a/lib/mime.c b/lib/mime.c index e6553816fa..d712331d04 100644 --- a/lib/mime.c +++ b/lib/mime.c @@ -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) { diff --git a/src/tool_easysrc.c b/src/tool_easysrc.c index 8b9c68c91f..6ef2be721c 100644 --- a/src/tool_easysrc.c +++ b/src/tool_easysrc.c @@ -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; diff --git a/src/tool_msgs.c b/src/tool_msgs.c index d11c5186bf..04fae58a9b 100644 --- a/src/tool_msgs.c +++ b/src/tool_msgs.c @@ -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); diff --git a/src/tool_setopt.c b/src/tool_setopt.c index 1c3096b8b4..b41b6d1d26 100644 --- a/src/tool_setopt.c +++ b/src/tool_setopt.c @@ -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 } } } diff --git a/tests/libtest/lib1560.c b/tests/libtest/lib1560.c index 6e734d2bf2..1509c76a7f 100644 --- a/tests/libtest/lib1560.c +++ b/tests/libtest/lib1560.c @@ -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)) {