From: Viktor Szakats Date: Fri, 17 Nov 2023 19:13:13 +0000 (+0000) Subject: build: always revert `#pragma GCC diagnostic` after use X-Git-Tag: curl-8_5_0~81 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a9fd0d0083a534ef1efa82e7546846776cbd7373;p=thirdparty%2Fcurl.git build: always revert `#pragma GCC diagnostic` after use Before this patch some source files were overriding gcc warning options, but without restoring them at the end of the file. In CMake UNITY builds these options spilled over to the remainder of the source code, effecitvely disabling them for a larger portion of the codebase than intended. `#pragma clang diagnostic` didn't have such issue in the codebase. Reviewed-by: Marcel Raad Closes #12352 --- diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c index 4d5445be49..76e6344ffa 100644 --- a/lib/vssh/libssh.c +++ b/lib/vssh/libssh.c @@ -93,6 +93,7 @@ #if defined(__GNUC__) && \ (LIBSSH_VERSION_MINOR >= 10) || \ (LIBSSH_VERSION_MAJOR > 0) +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -2946,4 +2947,10 @@ void Curl_ssh_version(char *buffer, size_t buflen) (void)msnprintf(buffer, buflen, "libssh/%s", ssh_version(0)); } +#if defined(__GNUC__) && \ + (LIBSSH_VERSION_MINOR >= 10) || \ + (LIBSSH_VERSION_MAJOR > 0) +#pragma GCC diagnostic pop +#endif + #endif /* USE_LIBSSH */ diff --git a/lib/vtls/sectransp.c b/lib/vtls/sectransp.c index 5ec7d9e501..4122623dd9 100644 --- a/lib/vtls/sectransp.c +++ b/lib/vtls/sectransp.c @@ -46,6 +46,7 @@ #endif /* __clang__ */ #ifdef __GNUC__ +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Waddress" #pragma GCC diagnostic ignored "-Wundef" #endif @@ -3500,6 +3501,10 @@ const struct Curl_ssl Curl_ssl_sectransp = { sectransp_send, /* send data to encrypt */ }; +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + #ifdef __clang__ #pragma clang diagnostic pop #endif diff --git a/src/tool_main.c b/src/tool_main.c index 2f132e2d29..66b1df7465 100644 --- a/src/tool_main.c +++ b/src/tool_main.c @@ -220,6 +220,7 @@ static void main_free(struct GlobalConfig *config) #ifdef _UNICODE #if defined(__GNUC__) /* GCC doesn't know about wmain() */ +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmissing-prototypes" #pragma GCC diagnostic ignored "-Wmissing-declarations" #endif @@ -287,4 +288,10 @@ int main(int argc, char *argv[]) #endif } +#ifdef _UNICODE +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif +#endif + #endif /* ndef UNITTESTS */ diff --git a/tests/unit/unit3200.c b/tests/unit/unit3200.c index eff5667720..0544bcc938 100644 --- a/tests/unit/unit3200.c +++ b/tests/unit/unit3200.c @@ -47,6 +47,7 @@ static CURLcode unit_stop(void) } #ifdef __GNUC__ +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Woverlength-strings" #endif @@ -161,6 +162,10 @@ UNITTEST_START } UNITTEST_STOP +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + #else static CURLcode unit_setup(void) {