summaryrefslogtreecommitdiffstats
path: root/compiler-rt/test/fuzzer/lit.cfg
diff options
context:
space:
mode:
authorMatt Morehouse <mascasa@google.com>2018-07-09 23:51:08 +0000
committerMatt Morehouse <mascasa@google.com>2018-07-09 23:51:08 +0000
commita34c65e845dc7f55a335cdede2033766eb73b66a (patch)
tree39e34f83ff079e90e7e4b3cd5554538f90367ad9 /compiler-rt/test/fuzzer/lit.cfg
parent6cd35e819438184a65d757bdbee2e749702915d5 (diff)
downloadbcm5719-llvm-a34c65e845dc7f55a335cdede2033766eb73b66a.tar.gz
bcm5719-llvm-a34c65e845dc7f55a335cdede2033766eb73b66a.zip
[libFuzzer] Make -fsanitize=memory,fuzzer work.
This patch allows libFuzzer to fuzz applications instrumented with MSan without recompiling libFuzzer with MSan instrumentation. Fixes https://github.com/google/sanitizers/issues/958. Differential Revision: https://reviews.llvm.org/D48891 llvm-svn: 336619
Diffstat (limited to 'compiler-rt/test/fuzzer/lit.cfg')
-rw-r--r--compiler-rt/test/fuzzer/lit.cfg11
1 files changed, 9 insertions, 2 deletions
diff --git a/compiler-rt/test/fuzzer/lit.cfg b/compiler-rt/test/fuzzer/lit.cfg
index 44d8f4e0375..cdd1d73d3c0 100644
--- a/compiler-rt/test/fuzzer/lit.cfg
+++ b/compiler-rt/test/fuzzer/lit.cfg
@@ -49,7 +49,7 @@ config.substitutions.append(('%build_dir', config.cmake_binary_dir))
libfuzzer_src_root = os.path.join(config.compiler_rt_src_root, "lib", "fuzzer")
config.substitutions.append(('%libfuzzer_src', libfuzzer_src_root))
-def generate_compiler_cmd(is_cpp=True, fuzzer_enabled=True):
+def generate_compiler_cmd(is_cpp=True, fuzzer_enabled=True, msan_enabled=False):
compiler_cmd = config.clang
extra_cmd = config.target_flags
if config.clang and config.stdlib == 'libc++':
@@ -63,7 +63,10 @@ def generate_compiler_cmd(is_cpp=True, fuzzer_enabled=True):
link_cmd = '-lstdc++'
std_cmd = '--driver-mode=g++ -std=c++11' if is_cpp else ''
- sanitizers = ['address']
+ if msan_enabled:
+ sanitizers = ['memory']
+ else:
+ sanitizers = ['address']
if fuzzer_enabled:
sanitizers.append('fuzzer')
sanitizers_cmd = ('-fsanitize=%s' % ','.join(sanitizers))
@@ -93,6 +96,10 @@ config.substitutions.append(('%no_fuzzer_c_compiler',
generate_compiler_cmd(is_cpp=False, fuzzer_enabled=False)
))
+config.substitutions.append(('%msan_compiler',
+ generate_compiler_cmd(is_cpp=True, fuzzer_enabled=True, msan_enabled=True)
+ ))
+
if config.host_os == 'Darwin':
if config.target_arch in ["x86_64", "x86_64h"]:
config.parallelism_group = "darwin-64bit-sanitizer"
OpenPOWER on IntegriCloud