mirror of
https://github.com/curl/curl.git
synced 2026-04-14 21:31:42 +03:00
build: extend GNU C guards to clang where applicable, fix fallouts
Some GNU C version guards implicitly include the clang compiler, because clang reports itself as GCC 4.2.1. This implicit inclusion doesn't happen if the guard requires a GCC version above 4.2.1. Fix two such guards to explicitly include clang where it does support the guarded feature: - curl/curl.h: use `typecheck-gcc.h` with clang. llvm clang v14+ supports this. The corresponding Apple clang version is also v14. Ref: https://en.wikipedia.org/wiki/Xcode#Toolchain_versions Apple clang v14 tested OK in CI: https://github.com/curl/curl/actions/runs/16353901480/job/46207437204 - tool_urlglib: use `__builtin_mul_overflow()` with clang v8+. llvm clang v3.8+ supports this, but to accommodate for Apple clang, start with v8, the Apple version having the mainline v3.8 feature set. Also fix compile warnings triggered by the above: - lib1912: fix duplicate `;`: ``` tests/libtest/lib1912.c:44:57: error: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Werror,-Wextra-semi-stmt] 44 | print_err(o->name, "CURLOT_LONG or CURLOT_VALUES"); | ^ [...] ``` Ref: https://github.com/curl/curl/actions/runs/16351302841/job/46198524880?pr=17955#step:12:61 - lib2032: silence typcheck warning with a cast: ``` tests/libtest/lib2032.c:145:29: error: sizeof on pointer operation will return size of 'CURL **' (aka 'void **') instead of 'CURL *[3]' (aka 'void *[3]') [-Werror,-Wsizeof-array-decay] 145 | ntlm_easy + num_handles); | ~~~~~~~~~ ^ ``` Ref: https://github.com/curl/curl/actions/runs/16351302841/job/46198524880?pr=17955#step:12:86 Closes #17955
This commit is contained in:
parent
b453a447ce
commit
fd2ca2399e
4 changed files with 8 additions and 6 deletions
|
|
@ -3317,8 +3317,9 @@ CURL_EXTERN CURLcode curl_easy_ssls_export(CURL *handle,
|
|||
#include "mprintf.h"
|
||||
|
||||
/* the typechecker does not work in C++ (yet) */
|
||||
#if defined(__GNUC__) && defined(__GNUC_MINOR__) && \
|
||||
((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && \
|
||||
#if ((defined(__GNUC__) && defined(__GNUC_MINOR__) && \
|
||||
((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) || \
|
||||
(defined(__clang__) && __clang_major__ >= 14)) && \
|
||||
!defined(__cplusplus) && !defined(CURL_DISABLE_TYPECHECK)
|
||||
#include "typecheck-gcc.h"
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -68,8 +68,9 @@ static int multiply(curl_off_t *amount, curl_off_t with)
|
|||
sum = 0;
|
||||
}
|
||||
else {
|
||||
#if defined(__GNUC__) && \
|
||||
((__GNUC__ > 5) || ((__GNUC__ == 5) && (__GNUC_MINOR__ >= 1)))
|
||||
#if (defined(__GNUC__) && \
|
||||
((__GNUC__ > 5) || ((__GNUC__ == 5) && (__GNUC_MINOR__ >= 1)))) || \
|
||||
(defined(__clang__) && __clang_major__ >= 8)
|
||||
if(__builtin_mul_overflow(*amount, with, &sum))
|
||||
return 1;
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#define print_err(name, exp) \
|
||||
curl_mfprintf(stderr, "Type mismatch for CURLOPT_%s (expected %s)\n", \
|
||||
name, exp);
|
||||
name, exp)
|
||||
|
||||
static CURLcode test_lib1912(char *URL)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ static CURLcode test_lib2032(char *URL) /* libntlmconnect */
|
|||
"testuser:testpass");
|
||||
easy_setopt(ntlm_easy[num_handles], CURLOPT_WRITEFUNCTION, callback);
|
||||
easy_setopt(ntlm_easy[num_handles], CURLOPT_WRITEDATA,
|
||||
ntlm_easy + num_handles);
|
||||
(void *)(ntlm_easy + num_handles));
|
||||
easy_setopt(ntlm_easy[num_handles], CURLOPT_HEADER, 1L);
|
||||
|
||||
multi_add_handle(multi, ntlm_easy[num_handles]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue