From: Patrick Donnelly Date: Fri, 12 Apr 2019 21:42:57 +0000 (-0700) Subject: CMakeLists: add std::move warnings in gcc9 X-Git-Tag: v15.1.0~2639^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c85409d821350a5a19e1654217299a4a16eec581;p=ceph.git CMakeLists: add std::move warnings in gcc9 Suggested by: https://developers.redhat.com/blog/2019/04/12/understanding-when-not-to-stdmove-in-c/ Clang support: http://releases.llvm.org/3.7.0/tools/clang/docs/ReleaseNotes.html#id4 Signed-off-by: Patrick Donnelly --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0c5d02377bfe..fa31e60c78f1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,5 @@ include(GetGitRevisionDescription) +include(CheckCXXCompilerFlag) include(GNUInstallDirs) # for erasure and compressor plugins @@ -36,6 +37,14 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-qualifiers") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-pragmas") +CHECK_CXX_COMPILER_FLAG("-Wpessimizing-move" COMPILER_SUPPORTS_PESSIMIZING_MOVE) +if(COMPILER_SUPPORTS_PESSIMIZING_MOVE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wpessimizing-move") +endif() +CHECK_CXX_COMPILER_FLAG("-Wredundant-move" COMPILER_SUPPORTS_REDUNDANT_MOVE) +if(COMPILER_SUPPORTS_REDUNDANT_MOVE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wredundant-move") +endif() if(CMAKE_CXX_COMPILER_ID STREQUAL GNU) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wstrict-null-sentinel -Woverloaded-virtual") @@ -106,7 +115,6 @@ endif() # require c++17 if(CMAKE_VERSION VERSION_LESS "3.8") - include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++17" COMPILER_SUPPORTS_CXX17) if(NOT COMPILER_SUPPORTS_CXX17) message(FATAL_ERROR