diff options
author | Matt Morehouse <mascasa@google.com> | 2018-07-09 23:51:08 +0000 |
---|---|---|
committer | Matt Morehouse <mascasa@google.com> | 2018-07-09 23:51:08 +0000 |
commit | a34c65e845dc7f55a335cdede2033766eb73b66a (patch) | |
tree | 39e34f83ff079e90e7e4b3cd5554538f90367ad9 /compiler-rt/test/fuzzer/lit.cfg | |
parent | 6cd35e819438184a65d757bdbee2e749702915d5 (diff) | |
download | bcm5719-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.cfg | 11 |
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" |