[sancov] Handle fork.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 4 Jun 2014 12:13:54 +0000 (12:13 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Wed, 4 Jun 2014 12:13:54 +0000 (12:13 +0000)
commitfe18102649dbe3fb9d0f57059ba3402fb0df4d36
tree2e7b9358ac8837a8e5d197f83de8817ad8a061de
parent5416a0395ff05a1b9ac4ee5b3154179a0d80e08b
[sancov] Handle fork.

Reset coverage data on fork().
For memory-mapped mode (coverage_direct=1) this helps avoid loss of data
(before this change two processes would write to the same file simultaneously).
For normal mode, this reduces coverage dump size, because PCs from the parent
process are no longer inherited by the child.

llvm-svn: 210180
compiler-rt/lib/asan/asan_interceptors.cc
compiler-rt/lib/asan/asan_interceptors.h
compiler-rt/lib/sanitizer_common/sanitizer_common.h
compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
compiler-rt/lib/sanitizer_common/sanitizer_coverage_mapping_libcdep.cc
compiler-rt/test/asan/TestCases/Linux/coverage-fork-direct.cc [new file with mode: 0644]
compiler-rt/test/asan/TestCases/Linux/coverage-fork.cc [new file with mode: 0644]