[llvm] 4bb5f44 - [CMake] Remove unneeded -Wnon-virtual-dtor availability check
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 31 11:00:20 PDT 2021
Author: Fangrui Song
Date: 2021-08-31T11:00:16-07:00
New Revision: 4bb5f44c701402462cb93ef00d46d52382f39f11
URL: https://github.com/llvm/llvm-project/commit/4bb5f44c701402462cb93ef00d46d52382f39f11
DIFF: https://github.com/llvm/llvm-project/commit/4bb5f44c701402462cb93ef00d46d52382f39f11.diff
LOG: [CMake] Remove unneeded -Wnon-virtual-dtor availability check
For Clang, 3.5 is the minimum requirement which has fixed the bug.
GCC 5 is good as well.
Added:
Modified:
llvm/cmake/modules/HandleLLVMOptions.cmake
Removed:
################################################################################
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
index b139344ce2a7d..c12440d502b74 100644
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -736,25 +736,7 @@ if (LLVM_ENABLE_WARNINGS AND (LLVM_COMPILER_IS_GCC_COMPATIBLE OR CLANG_CL))
check_cxx_compiler_flag("-Wnoexcept-type" CXX_SUPPORTS_NOEXCEPT_TYPE_FLAG)
append_if(CXX_SUPPORTS_NOEXCEPT_TYPE_FLAG "-Wno-noexcept-type" CMAKE_CXX_FLAGS)
- # Check if -Wnon-virtual-dtor warns even though the class is marked final.
- # If it does, don't add it. So it won't be added on clang 3.4 and older.
- # This also catches cases when -Wnon-virtual-dtor isn't supported by
- # the compiler at all. This flag is not activated for gcc since it will
- # incorrectly identify a protected non-virtual base when there is a friend
- # declaration. Don't activate this in general on Windows as this warning has
- # too many false positives on COM-style classes, which are destroyed with
- # Release() (PR32286).
- if (NOT CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
- set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
- set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11 -Werror=non-virtual-dtor")
- CHECK_CXX_SOURCE_COMPILES("class base {public: virtual void anchor();protected: ~base();};
- class derived final : public base { public: ~derived();};
- int main() { return 0; }"
- CXX_WONT_WARN_ON_FINAL_NONVIRTUALDTOR)
- set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
- append_if(CXX_WONT_WARN_ON_FINAL_NONVIRTUALDTOR
- "-Wnon-virtual-dtor" CMAKE_CXX_FLAGS)
- endif()
+ append("-Wnon-virtual-dtor" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
# Enable -Wdelete-non-virtual-dtor if available.
add_flag_if_supported("-Wdelete-non-virtual-dtor" DELETE_NON_VIRTUAL_DTOR_FLAG)
More information about the llvm-commits
mailing list