diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt index caf655d6799aaf..3ba09fd87f6aaf 100644 --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -578,6 +578,7 @@ function(cxx_add_warning_flags target) target_add_compile_flags_if_supported(${target} PRIVATE -Wno-user-defined-literals -Wno-covered-switch-default + -Wno-suggest-override -Wno-ignored-attributes # FIXME: Caused by _LIBCPP_NODEBUG_TYPE not being supported on older clangs ) if (LIBCXX_TARGETING_CLANG_CL) @@ -602,7 +603,8 @@ function(cxx_add_warning_flags target) target_add_compile_flags_if_supported(${target} PRIVATE -Wno-literal-suffix -Wno-c++14-compat - -Wno-noexcept-type) + -Wno-noexcept-type + -Wno-suggest-override) endif() if (LIBCXX_ENABLE_WERROR) target_add_compile_flags_if_supported(${target} PRIVATE -Werror) diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt index e4e20d950b8900..c28c438002d4d3 100644 --- a/libcxxabi/CMakeLists.txt +++ b/libcxxabi/CMakeLists.txt @@ -283,6 +283,8 @@ add_compile_flags_if_supported(-Wunused-variable) add_compile_flags_if_supported(-Wwrite-strings) add_compile_flags_if_supported(-Wundef) +add_compile_flags_if_supported(-Wno-suggest-override) + if (LIBCXXABI_ENABLE_WERROR) add_compile_flags_if_supported(-Werror) add_compile_flags_if_supported(-WX) diff --git a/lldb/unittests/CMakeLists.txt b/lldb/unittests/CMakeLists.txt index 6422b726ca69d9..3a31559463d12a 100644 --- a/lldb/unittests/CMakeLists.txt +++ b/lldb/unittests/CMakeLists.txt @@ -5,6 +5,10 @@ add_dependencies(lldb-test-deps LLDBUnitTests) include_directories(${LLDB_SOURCE_ROOT}) include_directories(${LLDB_PROJECT_ROOT}/unittests) +if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG) + add_definitions("-Wno-suggest-override") +endif() + set(LLDB_GTEST_COMMON_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/gtest_common.h) if (MSVC) list(APPEND LLVM_COMPILE_FLAGS /FI ${LLDB_GTEST_COMMON_INCLUDE}) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 2e249593e12f1f..f0e6a29f1c3c99 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -672,6 +672,9 @@ if (LLVM_ENABLE_WARNINGS AND (LLVM_COMPILER_IS_GCC_COMPATIBLE OR CLANG_CL)) # Enable -Wdelete-non-virtual-dtor if available. add_flag_if_supported("-Wdelete-non-virtual-dtor" DELETE_NON_VIRTUAL_DTOR_FLAG) + # Enable -Wsuggest-override if available. + add_flag_if_supported("-Wsuggest-override" SUGGEST_OVERRIDE_FLAG) + # Check if -Wcomment is OK with an // comment ending with '\' if the next # line is also a // comment. set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) diff --git a/llvm/utils/benchmark/CMakeLists.txt b/llvm/utils/benchmark/CMakeLists.txt index 38bc8c6bc9560c..ce1d38e6862a99 100644 --- a/llvm/utils/benchmark/CMakeLists.txt +++ b/llvm/utils/benchmark/CMakeLists.txt @@ -156,6 +156,10 @@ else() add_cxx_compiler_flag(-fno-exceptions) endif() + if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG) + add_cxx_compiler_flag(-Wno-suggest-override) + endif() + if (HAVE_CXX_FLAG_FSTRICT_ALIASING) if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel") #ICC17u2: Many false positives for Wstrict-aliasing add_cxx_compiler_flag(-Wstrict-aliasing) diff --git a/llvm/utils/unittest/CMakeLists.txt b/llvm/utils/unittest/CMakeLists.txt index 5aad048f2c35d8..36761a60d9f722 100644 --- a/llvm/utils/unittest/CMakeLists.txt +++ b/llvm/utils/unittest/CMakeLists.txt @@ -43,6 +43,9 @@ endif() if(CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG) add_definitions("-Wno-covered-switch-default") endif() +if(CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG) + add_definitions("-Wno-suggest-override") +endif() set(LLVM_REQUIRES_RTTI 1) add_definitions( -DGTEST_HAS_RTTI=0 )