summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2014-10-16 23:21:59 +0000
committerEric Fiselier <eric@efcs.ca>2014-10-16 23:21:59 +0000
commit04c1b74cb8779f92dcbbc4cd69e39a102b286a24 (patch)
tree91127a9dcd51f555a210bd6128ce94644b6d6910
parente2669ba6d48c584599521fef52573ba7e39168d1 (diff)
downloadbcm5719-llvm-04c1b74cb8779f92dcbbc4cd69e39a102b286a24.tar.gz
bcm5719-llvm-04c1b74cb8779f92dcbbc4cd69e39a102b286a24.zip
[libcxx] Add support for LLVM_USE_SANITIZER=Undefined
LLVM_USE_SANITIZER=Undefined support was added to the LLVM CMake configuration. Update libc++'s handling of LLVM_USE_SANITIZER to support this as well. llvm-svn: 219987
-rw-r--r--libcxx/CMakeLists.txt3
-rw-r--r--libcxx/test/lit.cfg5
2 files changed, 8 insertions, 0 deletions
diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index 12bbb502a73..3210757e506 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -304,6 +304,9 @@ if (LIBCXX_BUILT_STANDALONE)
if (LLVM_USE_SANITIZER STREQUAL "MemoryWithOrigins")
list(APPEND LIBCXX_CXX_FEATURE_FLAGS "-fsanitize-memory-track-origins")
endif()
+ elseif (LLVM_USE_SANITIZER STREQUAL "Undefined")
+ list(APPEND LIBCXX_CXX_FEATURE_FLAGS
+ "-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover")
else()
message(WARNING "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}")
endif()
diff --git a/libcxx/test/lit.cfg b/libcxx/test/lit.cfg
index bed329fe06d..fbeb827597b 100644
--- a/libcxx/test/lit.cfg
+++ b/libcxx/test/lit.cfg
@@ -434,6 +434,11 @@ class Configuration(object):
if san == 'MemoryWithOrigins':
self.compile_flags += ['-fsanitize-memory-track-origins']
self.config.available_features.add('msan')
+ elif san == 'Undefined':
+ self.compile_flags += ['-fsanitize=undefined',
+ '-fno-sanitize=vptr,function',
+ '-fno-sanitize-recover']
+ self.config.available_features.add('ubsan')
else:
self.lit_config.fatal('unsupported value for '
'libcxx_use_san: {0}'.format(san))
OpenPOWER on IntegriCloud