From 7b92c008271f9eca876db16ef18ae6d1eb031aac Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Thu, 25 May 2023 07:58:43 +0200 Subject: [PATCH] hide false positive in CMAKE on MINGW --- client/CMakeLists.txt | 11 +++++++++++ client/experimental_lib/CMakeLists.txt | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index ee1ddcc25..3fd255997 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -586,6 +586,17 @@ if (MINGW) set(CMAKE_C_FLAGS "-mno-ms-bitfields -fexec-charset=cp850 ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "-mno-ms-bitfields -fexec-charset=cp850 ${CMAKE_CXX_FLAGS}") + # GCC 10 has issues with false positives on stringop-overflow, + # let's disable them for now (cf https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92955, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94335) + # beware these flags didn't exist for GCC < 7 + if(CMAKE_COMPILER_IS_GNUCXX) + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) + if (GCC_VERSION VERSION_GREATER 10.0 OR GCC_VERSION VERSION_EQUAL 10.0) + set(CMAKE_C_FLAGS "-Wno-stringop-overflow -Wno-error=stringop-overflow ${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS "-Wno-stringop-overflow -Wno-error=stringop-overflow ${CMAKE_CXX_FLAGS}") + endif() + endif(CMAKE_COMPILER_IS_GNUCXX) + # link Winsock2 set(ADDITIONAL_LNK ws2_32 ${ADDITIONAL_LNK}) endif (MINGW) diff --git a/client/experimental_lib/CMakeLists.txt b/client/experimental_lib/CMakeLists.txt index bdc122e58..2ac10f871 100644 --- a/client/experimental_lib/CMakeLists.txt +++ b/client/experimental_lib/CMakeLists.txt @@ -585,6 +585,18 @@ if (MINGW) set(CMAKE_C_FLAGS "-mno-ms-bitfields -fexec-charset=cp850 ${CMAKE_C_FLAGS}") set(CMAKE_CXX_FLAGS "-mno-ms-bitfields -fexec-charset=cp850 ${CMAKE_CXX_FLAGS}") + + # GCC 10 has issues with false positives on stringop-overflow, + # let's disable them for now (cf https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92955, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94335) + # beware these flags didn't exist for GCC < 7 + if(CMAKE_COMPILER_IS_GNUCXX) + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) + if (GCC_VERSION VERSION_GREATER 10.0 OR GCC_VERSION VERSION_EQUAL 10.0) + set(CMAKE_C_FLAGS "-Wno-stringop-overflow -Wno-error=stringop-overflow ${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS "-Wno-stringop-overflow -Wno-error=stringop-overflow ${CMAKE_CXX_FLAGS}") + endif() + endif(CMAKE_COMPILER_IS_GNUCXX) + endif (MINGW) target_include_directories(pm3rrg_rdv4 PRIVATE