summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2017-06-02 00:52:35 +0000
committerKostya Serebryany <kcc@google.com>2017-06-02 00:52:35 +0000
commit1800814b41ebe23706a45f821ec7a6866dbad6f3 (patch)
treee3fb7b90ffff0118b1f3ea9b7e6ae87861f89c7d /compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
parentc1a56baa3ef7e58f94e11a953abbc2736347d2b7 (diff)
downloadbcm5719-llvm-1800814b41ebe23706a45f821ec7a6866dbad6f3.tar.gz
bcm5719-llvm-1800814b41ebe23706a45f821ec7a6866dbad6f3.zip
[sanitizer-coverage] nuke more stale code
llvm-svn: 304504
Diffstat (limited to 'compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc')
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc b/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
index a98dde76e22..24433356c63 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
@@ -146,6 +146,17 @@ static TracePcGuardController pc_guard_controller;
} // namespace
} // namespace __sancov
+namespace __sanitizer {
+void InitializeCoverage(bool enabled, const char *dir) {
+ static bool coverage_enabled = false;
+ if (coverage_enabled)
+ return; // May happen if two sanitizer enable coverage in the same process.
+ coverage_enabled = enabled;
+ Atexit(__sanitizer_cov_dump);
+ AddDieCallback(__sanitizer_cov_dump);
+}
+} // namespace __sanitizer
+
extern "C" {
SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_dump_coverage( // NOLINT
const uptr* pcs, uptr len) {
@@ -166,4 +177,18 @@ SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_pc_guard_init,
SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_dump_trace_pc_guard_coverage() {
__sancov::pc_guard_controller.Dump();
}
+SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_dump() {
+ __sanitizer_dump_trace_pc_guard_coverage();
+}
+// Default empty implementations (weak). Users should redefine them.
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp1, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp2, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp4, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp8, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_switch, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_div4, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_div8, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_gep, void) {}
+SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_pc_indir, void) {}
} // extern "C"
OpenPOWER on IntegriCloud