mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 02:33:06 +01:00
Reapply "Try enabling -Wsuggest-override again, using add_compile_options instead of add_compile_definitions for disabling it in unittests/ directories."
add_compile_options is more sensitive to its location in the file than add_definitions--it only takes effect for sources that are added after it. This updated patch ensures that the add_compile_options is done before adding any source files that depend on it. Using add_definitions caused the flag to be passed to rc.exe on Windows and thus broke Windows builds.
This commit is contained in:
parent
54e5b3de80
commit
c2132beee1
@ -672,6 +672,21 @@ if (LLVM_ENABLE_WARNINGS AND (LLVM_COMPILER_IS_GCC_COMPATIBLE OR CLANG_CL))
|
|||||||
# Enable -Wdelete-non-virtual-dtor if available.
|
# Enable -Wdelete-non-virtual-dtor if available.
|
||||||
add_flag_if_supported("-Wdelete-non-virtual-dtor" DELETE_NON_VIRTUAL_DTOR_FLAG)
|
add_flag_if_supported("-Wdelete-non-virtual-dtor" DELETE_NON_VIRTUAL_DTOR_FLAG)
|
||||||
|
|
||||||
|
# Enable -Wsuggest-override if it's available, and only if it doesn't
|
||||||
|
# suggest adding 'override' to functions that are already marked 'final'
|
||||||
|
# (which means it is disabled for GCC < 9.2).
|
||||||
|
check_cxx_compiler_flag("-Wsuggest-override" CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
|
||||||
|
if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
|
||||||
|
set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||||
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror=suggest-override")
|
||||||
|
CHECK_CXX_SOURCE_COMPILES("class base {public: virtual void anchor();};
|
||||||
|
class derived : base {public: void anchor() final;};
|
||||||
|
int main() { return 0; }"
|
||||||
|
CXX_WSUGGEST_OVERRIDE_ALLOWS_ONLY_FINAL)
|
||||||
|
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
|
||||||
|
append_if(CXX_WSUGGEST_OVERRIDE_ALLOWS_ONLY_FINAL "-Wsuggest-override" CMAKE_CXX_FLAGS)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Check if -Wcomment is OK with an // comment ending with '\' if the next
|
# Check if -Wcomment is OK with an // comment ending with '\' if the next
|
||||||
# line is also a // comment.
|
# line is also a // comment.
|
||||||
set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
add_definitions(-DGTEST_LANG_CXX11=1)
|
add_definitions(-DGTEST_LANG_CXX11=1)
|
||||||
add_definitions(-DGTEST_HAS_TR1_TUPLE=0)
|
add_definitions(-DGTEST_HAS_TR1_TUPLE=0)
|
||||||
|
|
||||||
|
if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
|
||||||
|
add_compile_options("-Wno-suggest-override")
|
||||||
|
endif()
|
||||||
|
|
||||||
add_llvm_library(LLVMTestingSupport
|
add_llvm_library(LLVMTestingSupport
|
||||||
Annotations.cpp
|
Annotations.cpp
|
||||||
Error.cpp
|
Error.cpp
|
||||||
|
@ -14,6 +14,10 @@ function(add_llvm_target_unittest test_dir_name)
|
|||||||
add_llvm_unittest(${test_dir_name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
|
add_llvm_unittest(${test_dir_name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
|
||||||
|
add_compile_options("-Wno-suggest-override")
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(ADT)
|
add_subdirectory(ADT)
|
||||||
add_subdirectory(Analysis)
|
add_subdirectory(Analysis)
|
||||||
add_subdirectory(AsmParser)
|
add_subdirectory(AsmParser)
|
||||||
|
@ -156,6 +156,10 @@ else()
|
|||||||
add_cxx_compiler_flag(-fno-exceptions)
|
add_cxx_compiler_flag(-fno-exceptions)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
|
||||||
|
add_cxx_compiler_flag(-Wno-suggest-override)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (HAVE_CXX_FLAG_FSTRICT_ALIASING)
|
if (HAVE_CXX_FLAG_FSTRICT_ALIASING)
|
||||||
if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel") #ICC17u2: Many false positives for Wstrict-aliasing
|
if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel") #ICC17u2: Many false positives for Wstrict-aliasing
|
||||||
add_cxx_compiler_flag(-Wstrict-aliasing)
|
add_cxx_compiler_flag(-Wstrict-aliasing)
|
||||||
|
@ -43,6 +43,9 @@ endif()
|
|||||||
if(CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG)
|
if(CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG)
|
||||||
add_definitions("-Wno-covered-switch-default")
|
add_definitions("-Wno-covered-switch-default")
|
||||||
endif()
|
endif()
|
||||||
|
if(CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
|
||||||
|
add_definitions("-Wno-suggest-override")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(LLVM_REQUIRES_RTTI 1)
|
set(LLVM_REQUIRES_RTTI 1)
|
||||||
add_definitions( -DGTEST_HAS_RTTI=0 )
|
add_definitions( -DGTEST_HAS_RTTI=0 )
|
||||||
|
Loading…
Reference in New Issue
Block a user