[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
This commit is contained in:
Eric Fiselier 2014-10-16 23:21:59 +00:00
parent e2669ba6d4
commit 04c1b74cb8
2 changed files with 8 additions and 0 deletions

View File

@ -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()

View File

@ -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))