https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.html as of 2023-11-29 [1]. Enable new recommended warnings (except `-Wsign-conversion`): - enable `-Wformat=2` for clang (in both cmake and autotools). - add `CURL_PRINTF()` internal attribute and mark functions accepting printf arguments with it. This is a copy of existing `CURL_TEMP_PRINTF()` but using `__printf__` to make it compatible with redefinting the `printf` symbol: https://gcc.gnu.org/onlinedocs/gcc-3.0.4/gcc_5.html#SEC94 - fix `CURL_PRINTF()` and existing `CURL_TEMP_PRINTF()` for mingw-w64 and enable it on this platform. - enable `-Wimplicit-fallthrough`. - enable `-Wtrampolines`. - add `-Wsign-conversion` commented with a FIXME. - cmake: enable `-pedantic-errors` the way we do it with autotools. Follow-up to |
||
|---|---|---|
| .. | ||
| curl | ||
| Makefile.am | ||
| README.md | ||
include
Public include files for libcurl, external users.
They're 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.