From a9c5bb3ff3a71dc0529ebf72c243c6388112b2c5 Mon Sep 17 00:00:00 2001 From: Edwin Vane Date: Mon, 4 Feb 2013 02:32:44 +0000 Subject: [PATCH] Turn off uninitialized-use warnings for gcc in cmake build Added support to the cmake build to turn off uninitialized use warnings for gcc. This cleans the build up somewhat. Used logic simpler than found in autoconf by making use of the fact that although gcc won't complain about unsupported -Wno-* flags it *will* complain about unsupported -W flags. Reviewers: gribozavr, doug.gregor, chandlerc llvm-svn: 174299 --- llvm/cmake/config-ix.cmake | 18 ++++++++++++++++++ llvm/cmake/modules/HandleLLVMOptions.cmake | 6 ++++++ 2 files changed, 24 insertions(+) diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake index a313e9c..b079a07 100755 --- a/llvm/cmake/config-ix.cmake +++ b/llvm/cmake/config-ix.cmake @@ -305,6 +305,24 @@ include(CheckCXXCompilerFlag) check_cxx_compiler_flag("-Wno-variadic-macros" SUPPORTS_NO_VARIADIC_MACROS_FLAG) +set(USE_NO_MAYBE_UNINITIALIZED 0) +set(USE_NO_UNINITIALIZED 0) + +# Disable gcc's potentially uninitialized use analysis as it presents lots of +# false positives. +if (CMAKE_COMPILER_IS_GNUCXX) + check_cxx_compiler_flag("-Wmaybe-uninitialized" HAS_MAYBE_UNINITIALIZED) + if (HAS_MAYBE_UNINITIALIZED) + set(USE_NO_MAYBE_UNINITIALIZED 1) + else() + # Only recent versions of gcc make the distinction between -Wuninitialized + # and -Wmaybe-uninitialized. If -Wmaybe-uninitialized isn't supported, just + # turn off all uninitialized use warnings. + check_cxx_compiler_flag("-Wuninitialized" HAS_UNINITIALIZED) + set(USE_NO_UNINITIALIZED ${HAS_UNINITIALIZED}) + endif() +endif() + include(GetHostTriple) get_host_triple(LLVM_HOST_TRIPLE) diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake index 3cf1ef2..9121080 100644 --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -206,6 +206,12 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE ) if( C_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcovered-switch-default" ) endif() + if (USE_NO_UNINITIALIZED) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-uninitialized") + endif() + if (USE_NO_MAYBE_UNINITIALIZED) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized") + endif() endif (LLVM_ENABLE_WARNINGS) if (LLVM_ENABLE_WERROR) add_llvm_definitions( -Werror ) -- 2.7.4