diff options
| author | Eric Fiselier <eric@efcs.ca> | 2014-10-23 03:10:43 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2014-10-23 03:10:43 +0000 |
| commit | 78d325c1435c5e75cc0d43de01814e800ff13706 (patch) | |
| tree | 06a3fa28091c683db01e7581dbf673dcb5729b5c /libcxxabi | |
| parent | 062e6ee121519e4970b441829755eca95cc5e991 (diff) | |
| download | bcm5719-llvm-78d325c1435c5e75cc0d43de01814e800ff13706.tar.gz bcm5719-llvm-78d325c1435c5e75cc0d43de01814e800ff13706.zip | |
[libcxxabi] Add support for running libc++abi tests with sanitizers
Summary: Add support for LLVM_USE_SANITIZER to the libc++abi tests. Currently, if libc++abi is configured with LLVM_USE_SANITIZER then none of the tests will pass.
Reviewers: jroelofs, mclow.lists, danalbert
Reviewed By: danalbert
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D5926
llvm-svn: 220464
Diffstat (limited to 'libcxxabi')
| -rw-r--r-- | libcxxabi/test/lit.cfg | 25 | ||||
| -rw-r--r-- | libcxxabi/test/lit.site.cfg.in | 1 |
2 files changed, 26 insertions, 0 deletions
diff --git a/libcxxabi/test/lit.cfg b/libcxxabi/test/lit.cfg index 72d038dedcc..87226e9fca2 100644 --- a/libcxxabi/test/lit.cfg +++ b/libcxxabi/test/lit.cfg @@ -222,6 +222,31 @@ include_paths = ['-I' + libcxxabi_src_root + '/include', library_paths = ['-L' + libcxxabi_obj_root + '/lib'] compile_flags = ['-std=c++11'] + +san = lit_config.params.get('llvm_use_sanitizer', None) +if san is None: + san = getattr(config, 'llvm_use_sanitizer', None) +if san: + if not sys.platform.startswith('freebsd'): + link_flags += ['-ldl'] + if san == 'Address': + compile_flags += ['-fsanitize=address'] + config.available_features.add('asan') + elif san == 'Memory' or san == 'MemoryWithOrigins': + compile_flags += ['-fsanitize=memory'] + config.available_features.add('msan') + if san == 'MemoryWithOrigins': + compile_flags += ['-fsanitize-memory-track-origins'] + elif san == 'Undefined': + compile_flags += ['-fsanitize=undefined', + '-fno-sanitize=vptr,function', + '-fno-sanitize-recover'] + config.available_features.add('ubsan') + else: + lit_config.fatal('unsupported value for ' + 'llvm_use_sanitizer: {0}'.format(san)) + + # Configure extra linker parameters. exec_env = {} if sys.platform == 'darwin': diff --git a/libcxxabi/test/lit.site.cfg.in b/libcxxabi/test/lit.site.cfg.in index 94c61a0e4a7..bb62387a230 100644 --- a/libcxxabi/test/lit.site.cfg.in +++ b/libcxxabi/test/lit.site.cfg.in @@ -6,6 +6,7 @@ config.python_executable = "@PYTHON_EXECUTABLE@" config.enable_shared = @LIBCXXABI_ENABLE_SHARED@ config.libcxx_includes = "@LIBCXXABI_LIBCXX_INCLUDES@" config.llvm_unwinder = @LIBCXXABI_USE_LLVM_UNWINDER@ +config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@" # Let the main config do the real work. lit_config.load_config(config, "@LIBCXXABI_SOURCE_DIR@/test/lit.cfg") |

