diff --git a/cmake/cxxopts.cmake b/cmake/cxxopts.cmake index 8f9d61a..e65c4b5 100644 --- a/cmake/cxxopts.cmake +++ b/cmake/cxxopts.cmake @@ -74,8 +74,10 @@ function(cxxopts_enable_warnings) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W2") elseif(CMAKE_CXX_COMPILER_ID MATCHES "[Cc]lang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") + if (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER_EQUAL 5.0) set(COMPILER_SPECIFIC_FLAGS "-Wsuggest-override") - endif() + endif() + endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra -Wshadow -Weffc++ -Wsign-compare -Wshadow -Wwrite-strings -Wpointer-arith -Winit-self -Wconversion -Wno-sign-conversion ${COMPILER_SPECIFIC_FLAGS}") endif() diff --git a/include/cxxopts.hpp b/include/cxxopts.hpp index eee7ba0..9776558 100644 --- a/include/cxxopts.hpp +++ b/include/cxxopts.hpp @@ -288,8 +288,9 @@ namespace cxxopts #if defined(__GNUC__) // GNU GCC with -Weffc++ will issue a warning regarding the upcoming class, we want to silence it: // warning: base class 'class std::enable_shared_from_this' has accessible non-virtual destructor -#pragma GCC diagnostic ignored "-Wnon-virtual-dtor" #pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wnon-virtual-dtor" +#pragma GCC diagnostic ignored "-Weffc++" // This will be ignored under other compilers like LLVM clang. #endif class Value : public std::enable_shared_from_this