summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-01-31 22:19:12 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-01-31 22:19:12 +0000
commit1983f54daebc5b4ba0ebb3fbc6ec0abb083f8908 (patch)
tree429dfd1754c409d3e317d21e0d84475fd75410e7 /cmake
parentac1b2e5550d395f8a150830d9513ee62d678597b (diff)
downloadexternal_llvm-1983f54daebc5b4ba0ebb3fbc6ec0abb083f8908.zip
external_llvm-1983f54daebc5b4ba0ebb3fbc6ec0abb083f8908.tar.gz
external_llvm-1983f54daebc5b4ba0ebb3fbc6ec0abb083f8908.tar.bz2
Add -Wno-nested-anon-types to -pedantic builds of LLVM. This Clang warning
catches uses of an extremely minor and widely-available C++ extension (which every C++ compiler I could find supports, but EDG and Clang reject in strict mode). The diagnosed code pattern looks like this: struct X { union { struct { int a; int b; } S; }; }; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174103 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/HandleLLVMOptions.cmake4
1 files changed, 4 insertions, 0 deletions
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index bb1085c..3cf1ef2 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -193,6 +193,10 @@ elseif( LLVM_COMPILER_IS_GCC_COMPATIBLE )
if (LLVM_ENABLE_PEDANTIC)
add_llvm_definitions( -pedantic -Wno-long-long )
+ check_cxx_compiler_flag("-Werror -Wnested-anon-types" CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG)
+ if( CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG )
+ set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-nested-anon-types" )
+ endif()
endif (LLVM_ENABLE_PEDANTIC)
check_cxx_compiler_flag("-Werror -Wcovered-switch-default" CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG)
if( CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG )