[asan] Fix mmap-ed coverage with coverage=0.

llvm-svn: 210655
This commit is contained in:
Evgeniy Stepanov 2014-06-11 15:11:26 +00:00
parent 595fcab2d0
commit dfa5439652
2 changed files with 20 additions and 2 deletions

View File

@ -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());

View File

@ -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;
}