diff --git a/CMakeLists.txt b/CMakeLists.txt index 12bbb502..3210757e 100644 --- a/CMakeLists.txt +++ b/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/test/lit.cfg b/test/lit.cfg index bed329fe..fbeb8275 100644 --- a/test/lit.cfg +++ b/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))