From: Viktor Szakats Date: Sat, 26 Apr 2025 07:28:28 +0000 (+0200) Subject: build: enable gcc-12/13+, clang-10+ picky warnings X-Git-Tag: curl-8_14_0~204 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b7accda5ae3f2e663aa3f3853805241ef87c2fe;p=thirdparty%2Fcurl.git build: enable gcc-12/13+, clang-10+ picky warnings Cherry-picked from #17190 Closes #17196 --- diff --git a/CMake/PickyWarnings.cmake b/CMake/PickyWarnings.cmake index 610def004d..061e7a7a17 100644 --- a/CMake/PickyWarnings.cmake +++ b/CMake/PickyWarnings.cmake @@ -179,6 +179,7 @@ if(PICKY_COMPILER) (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12.4)) list(APPEND _picky_enable -Wimplicit-fallthrough # clang 4.0 gcc 7.0 appleclang 12.4 # We do silencing for clang 10.0 and above only + -Wxor-used-as-pow # clang 10.0 gcc 13.0 ) endif() else() # gcc @@ -242,6 +243,13 @@ if(PICKY_COMPILER) -Wenum-conversion # clang 3.2 gcc 10.0 appleclang 4.6 g++ 11.0 ) endif() + if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 13.0) + list(APPEND _picky_enable + -Warray-compare # clang 20.0 gcc 12.0 + -Wenum-int-mismatch # gcc 13.0 + -Wxor-used-as-pow # clang 10.0 gcc 13.0 + ) + endif() endif() # diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4 index 15babf9d30..df4b9a266c 100644 --- a/m4/curl-compilers.m4 +++ b/m4/curl-compilers.m4 @@ -905,6 +905,7 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [ dnl clang 10 or later if test "$compiler_num" -ge "1000"; then tmp_CFLAGS="$tmp_CFLAGS -Wimplicit-fallthrough" # we have silencing markup for clang 10.0 and above only + CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [xor-used-as-pow]) fi fi ;; @@ -1096,6 +1097,17 @@ AC_DEFUN([CURL_SET_COMPILER_WARNING_OPTS], [ CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [enum-conversion]) fi # + dnl Only gcc 12 or later + if test "$compiler_num" -ge "1200"; then + CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [array-compare]) + fi + # + dnl Only gcc 13 or later + if test "$compiler_num" -ge "1300"; then + CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [enum-int-mismatch]) + CURL_ADD_COMPILER_WARNINGS([tmp_CFLAGS], [xor-used-as-pow]) + fi + # fi # dnl Do not issue warnings for code in system include paths.