diff options
| author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2014-06-11 15:11:26 +0000 |
|---|---|---|
| committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2014-06-11 15:11:26 +0000 |
| commit | dfa54396520db5c8156e11feca94f975e1024d56 (patch) | |
| tree | 3e3a11f1e1c7a553ba656243de7689bf25fae9fe | |
| parent | 595fcab2d0ad17cd1310f99d8b506e8fe55dc5a0 (diff) | |
| download | bcm5719-llvm-dfa54396520db5c8156e11feca94f975e1024d56.tar.gz bcm5719-llvm-dfa54396520db5c8156e11feca94f975e1024d56.zip | |
[asan] Fix mmap-ed coverage with coverage=0.
llvm-svn: 210655
| -rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc | 4 | ||||
| -rw-r--r-- | compiler-rt/test/asan/TestCases/Linux/coverage-disabled.cc | 18 |
2 files changed, 20 insertions, 2 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc b/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc index ba6c58c5799..c22de9786c0 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc @@ -365,8 +365,8 @@ SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_init() { coverage_data.Init(); } SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_module_init(uptr npcs) { - if (SANITIZER_ANDROID && common_flags()->coverage && - common_flags()->coverage_direct) { + if (!common_flags()->coverage || !common_flags()->coverage_direct) return; + if (SANITIZER_ANDROID) { // dlopen/dlclose interceptors do not work on Android, so we rely on // Extend() calls to update .sancov.map. CovUpdateMapping(GET_CALLER_PC()); diff --git a/compiler-rt/test/asan/TestCases/Linux/coverage-disabled.cc b/compiler-rt/test/asan/TestCases/Linux/coverage-disabled.cc new file mode 100644 index 00000000000..315c3125b46 --- /dev/null +++ b/compiler-rt/test/asan/TestCases/Linux/coverage-disabled.cc @@ -0,0 +1,18 @@ +// Test that no data is collected without a runtime flag. +// +// RUN: %clangxx_asan -mllvm -asan-coverage=1 %s -o %t +// +// RUN: rm -rf %T/coverage-disabled +// +// RUN: mkdir -p %T/coverage-disabled/normal +// RUN: ASAN_OPTIONS=coverage_direct=0:coverage_dir=%T/coverage-disabled/normal:verbosity=1 %run %t +// RUN: not %sancov print %T/coverage-disabled/normal/*.sancov 2>&1 +// +// RUN: mkdir -p %T/coverage-disabled/direct +// RUN: ASAN_OPTIONS=coverage_direct=1:coverage_dir=%T/coverage-disabled/direct:verbosity=1 %run %t +// RUN: cd %T/coverage-disabled/direct +// RUN: not %sancov rawunpack *.sancov + +int main(int argc, char **argv) { + return 0; +} |

