]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
CMakeLists: add std::move warnings in gcc9 27569/head
authorPatrick Donnelly <pdonnell@redhat.com>
Fri, 12 Apr 2019 21:42:57 +0000 (14:42 -0700)
committerPatrick Donnelly <pdonnell@redhat.com>
Mon, 29 Apr 2019 23:16:43 +0000 (16:16 -0700)
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 <pdonnell@redhat.com>
src/CMakeLists.txt

index 0c5d02377bfe91185660212b50126b0f3c0e4bf4..fa31e60c78f11940b669e7ab2f332023bff9e94e 100644 (file)
@@ -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