[compiler-rt] r228102 - [sanitizer] add another workaround for PR 17409: when over a threshold emit coverage instrumentation as calls.
Kostya Serebryany
kcc at google.com
Tue Feb 3 17:21:46 PST 2015
Author: kcc
Date: Tue Feb 3 19:21:45 2015
New Revision: 228102
URL: http://llvm.org/viewvc/llvm-project?rev=228102&view=rev
Log:
[sanitizer] add another workaround for PR 17409: when over a threshold emit coverage instrumentation as calls.
Modified:
compiler-rt/trunk/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_coverage_libcdep.cc?rev=228102&r1=228101&r2=228102&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_coverage_libcdep.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_coverage_libcdep.cc Tue Feb 3 19:21:45 2015
@@ -659,6 +659,11 @@ SANITIZER_INTERFACE_ATTRIBUTE void __san
coverage_data.Add(StackTrace::GetPreviousInstructionPc(GET_CALLER_PC()),
guard);
}
+SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_with_check(u32 *guard) {
+ atomic_uint32_t *atomic_guard = reinterpret_cast<atomic_uint32_t*>(guard);
+ if (__sanitizer::atomic_load(atomic_guard, memory_order_relaxed))
+ __sanitizer_cov(guard);
+}
SANITIZER_INTERFACE_ATTRIBUTE void
__sanitizer_cov_indir_call16(uptr callee, uptr callee_cache16[]) {
coverage_data.IndirCall(StackTrace::GetPreviousInstructionPc(GET_CALLER_PC()),
More information about the llvm-commits
mailing list