From d1ac4adf46f2a8c5be6b7fe46de70b0c29feed0d Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Sun, 22 Oct 2017 15:12:30 +0200 Subject: [PATCH] Detect unused variables and unused functions with clang --- cmake/setup_compiler_flags_gnu.cmake | 19 ++++++++++++------- source/dummy.cc | 5 ++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/cmake/setup_compiler_flags_gnu.cmake b/cmake/setup_compiler_flags_gnu.cmake index 04a3761c22..53f2290872 100644 --- a/cmake/setup_compiler_flags_gnu.cmake +++ b/cmake/setup_compiler_flags_gnu.cmake @@ -94,7 +94,6 @@ IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-Wno-unsupported-friend") ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-Wno-unused-parameter") - ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-Wno-unused-variable") # # Disable a diagnostic that warns about potentially uninstantiated static @@ -106,12 +105,18 @@ IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") # Clang versions prior to 3.6 emit a lot of false positives wrt # "-Wunused-function". Also suppress warnings for Xcode older than 6.3 # (which is equivalent to clang < 3.6). - # - # FIXME: I wait for the day with a clang version "4.0"... and I will - # curse the person that thought it is a _great_ idea to come up with - # independent version numbers for clang on Mac... - # - IF( CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.6" OR + # Policy CMP0025 allows to differentiate between Clang and AppleClang + # which admits a more fine-grained control. Otherwise, we are left + # with just disabling this feature for all versions between 4.0 and 6.3. + # + IF (POLICY CMP0025) + IF( (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" + AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.6") + OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" + AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.3")) + ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-Wno-unused-function") + ENDIF() + ELSEIF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.6" OR ( NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.0" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.3") ) ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS "-Wno-unused-function") diff --git a/source/dummy.cc b/source/dummy.cc index 37ebf06eb0..19ae7b02a4 100644 --- a/source/dummy.cc +++ b/source/dummy.cc @@ -21,4 +21,7 @@ */ const int global_symbol_42 = 42; - +void use_global_symbol_42() +{ + (void) global_symbol_42; +} -- 2.39.5