summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorEdwin Vane <edwin.vane@intel.com>2013-02-04 02:32:44 +0000
committerEdwin Vane <edwin.vane@intel.com>2013-02-04 02:32:44 +0000
commita9c5bb3ff3a71dc0529ebf72c243c6388112b2c5 (patch)
tree7468e80dbb7772105659ea83bdc45e8506aba416 /llvm
parent80159432de392d99deae21503cebc8db7ac40807 (diff)
downloadbcm5719-llvm-a9c5bb3ff3a71dc0529ebf72c243c6388112b2c5.tar.gz
bcm5719-llvm-a9c5bb3ff3a71dc0529ebf72c243c6388112b2c5.zip
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
Diffstat (limited to 'llvm')
-rwxr-xr-xllvm/cmake/config-ix.cmake18
-rw-r--r--llvm/cmake/modules/HandleLLVMOptions.cmake6
2 files changed, 24 insertions, 0 deletions
diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
index a313e9cbb03..b079a0738b9 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 3cf1ef20e41..91210804c38 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 )
OpenPOWER on IntegriCloud