mirror of
https://github.com/curl/curl.git
synced 2026-04-23 03:22:17 +03:00
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 |
||
|---|---|---|
| .. | ||
| curl | ||
| Makefile.am | ||
| README.md | ||
include
Public include files for libcurl, external users.
They are all placed in the curl subdirectory here for better fit in any kind of environment. You must include files from here using...
#include <curl/curl.h>
... style and point the compiler's include path to the directory holding the curl subdirectory. It makes it more likely to survive future modifications.
The public curl include files can be shared freely between different platforms and different architectures.