diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2015-08-22 05:15:55 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2015-08-22 05:15:55 +0000 |
commit | d0a992e536cbd34fbd9a66e0fcf6decebfab8ee6 (patch) | |
tree | 23ba4f65996e8711bc2728a95710cfc6510b1dc6 | |
parent | b1feacf61c6e529e610a7cc8254e6eef43fe96bf (diff) |
Revert r245770 and r245777.
These changes break both autoconf Mac OS X buildbot (linker errors
due to wrong Makefiles) and CMake buildbot (safestack test failures).
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@245784 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/asan/asan_rtl.cc | 2 | ||||
-rw-r--r-- | lib/lsan/lsan_common.cc | 2 | ||||
-rw-r--r-- | lib/msan/msan.cc | 1 | ||||
-rw-r--r-- | lib/msan/msan.h | 1 | ||||
-rw-r--r-- | lib/msan/msan_linux.cc | 5 | ||||
-rw-r--r-- | lib/sanitizer_common/Makefile.mk | 8 | ||||
-rw-r--r-- | lib/sanitizer_common/sanitizer_common.cc | 6 | ||||
-rw-r--r-- | lib/sanitizer_common/sanitizer_common.h | 1 | ||||
-rw-r--r-- | lib/sanitizer_common/sanitizer_common_nolibc.cc | 3 | ||||
-rw-r--r-- | lib/sanitizer_common/sanitizer_coverage_libcdep.cc | 4 |
10 files changed, 17 insertions, 16 deletions
diff --git a/lib/asan/asan_rtl.cc b/lib/asan/asan_rtl.cc index 5dcfcc871..ad5a8eb98 100644 --- a/lib/asan/asan_rtl.cc +++ b/lib/asan/asan_rtl.cc @@ -56,6 +56,8 @@ static void AsanDie() { UnmapOrDie((void*)kLowShadowBeg, kHighShadowEnd - kLowShadowBeg); } } + if (common_flags()->coverage) + __sanitizer_cov_dump(); if (flags()->abort_on_error) Abort(); } diff --git a/lib/lsan/lsan_common.cc b/lib/lsan/lsan_common.cc index c3f78d17d..243dd55bb 100644 --- a/lib/lsan/lsan_common.cc +++ b/lib/lsan/lsan_common.cc @@ -445,6 +445,8 @@ void DoLeakCheck() { return; } if (common_flags()->exitcode) { + if (common_flags()->coverage) + __sanitizer_cov_dump(); Die(); } } diff --git a/lib/msan/msan.cc b/lib/msan/msan.cc index ce4b1a5dd..0ba7f32bb 100644 --- a/lib/msan/msan.cc +++ b/lib/msan/msan.cc @@ -375,6 +375,7 @@ void __msan_init() { msan_init_is_running = 1; SanitizerToolName = "MemorySanitizer"; + SetDieCallback(MsanDie); InitTlsSize(); CacheBinaryName(); diff --git a/lib/msan/msan.h b/lib/msan/msan.h index e4344e564..3a6e1a709 100644 --- a/lib/msan/msan.h +++ b/lib/msan/msan.h @@ -167,6 +167,7 @@ struct SymbolizerScope { ~SymbolizerScope() { ExitSymbolizer(); } }; +void MsanDie(); void PrintWarning(uptr pc, uptr bp); void PrintWarningWithOrigin(uptr pc, uptr bp, u32 origin); diff --git a/lib/msan/msan_linux.cc b/lib/msan/msan_linux.cc index 7f6cb75ff..f4b48b7ab 100644 --- a/lib/msan/msan_linux.cc +++ b/lib/msan/msan_linux.cc @@ -151,6 +151,11 @@ bool InitShadow(bool init_origins) { return true; } +void MsanDie() { + if (common_flags()->coverage) + __sanitizer_cov_dump(); +} + static void MsanAtExit(void) { if (flags()->print_stats && (flags()->atexit || msan_report_count > 0)) ReportStats(); diff --git a/lib/sanitizer_common/Makefile.mk b/lib/sanitizer_common/Makefile.mk index 73fc21325..fbd3009f2 100644 --- a/lib/sanitizer_common/Makefile.mk +++ b/lib/sanitizer_common/Makefile.mk @@ -10,9 +10,9 @@ ModuleName := sanitizer_common SubDirs := -AllSources := $(foreach file,$(wildcard $(Dir)/*.cc),$(notdir $(file))) -LibcSources := $(filter-out $(wildcard $(Dir)/*_nolibc.cc),$(AllSources)) -ObjNames := $(LibcSources:%.cc=%.o) +Sources := $(foreach file,$(wildcard $(Dir)/*.cc),$(notdir $(file))) +Sources := $(filter-out $(wildcard $(Dir)/*_nolibc.cc),$(Sources)) +ObjNames := $(Sources:%.cc=%.o) Implementation := Generic @@ -20,4 +20,4 @@ Implementation := Generic Dependencies := $(wildcard $(Dir)/*.h) # Define a convenience variable for all the sanitizer_common functions. -SanitizerCommonFunctions := $(LibcSources:%.cc=%) +SanitizerCommonFunctions := $(Sources:%.cc=%) diff --git a/lib/sanitizer_common/sanitizer_common.cc b/lib/sanitizer_common/sanitizer_common.cc index 5defbb271..fb0cee0f4 100644 --- a/lib/sanitizer_common/sanitizer_common.cc +++ b/lib/sanitizer_common/sanitizer_common.cc @@ -118,12 +118,6 @@ DieCallbackType GetDieCallback() { } void NORETURN Die() { -#if !SANITIZER_GO - // Dump coverage before invoking user callback, in case it calls abort() or - // _exit() itself. - if (common_flags()->coverage) - DumpCoverage(); -#endif // !SANITIZER_GO if (UserDieCallback) UserDieCallback(); if (InternalDieCallback) diff --git a/lib/sanitizer_common/sanitizer_common.h b/lib/sanitizer_common/sanitizer_common.h index 3b93bc97c..9aa69c5a4 100644 --- a/lib/sanitizer_common/sanitizer_common.h +++ b/lib/sanitizer_common/sanitizer_common.h @@ -283,7 +283,6 @@ void PrepareForSandboxing(__sanitizer_sandbox_arguments *args); void CovPrepareForSandboxing(__sanitizer_sandbox_arguments *args); void SetSandboxingCallback(void (*f)()); -void DumpCoverage(); void CoverageUpdateMapping(); void CovBeforeFork(); void CovAfterFork(int child_pid); diff --git a/lib/sanitizer_common/sanitizer_common_nolibc.cc b/lib/sanitizer_common/sanitizer_common_nolibc.cc index a761910c5..7d87b591c 100644 --- a/lib/sanitizer_common/sanitizer_common_nolibc.cc +++ b/lib/sanitizer_common/sanitizer_common_nolibc.cc @@ -20,5 +20,4 @@ namespace __sanitizer { void WriteToSyslog(const char *buffer) {} #endif -void DumpCoverage() {} -} // namespace __sanitizer +} diff --git a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc index a5f014514..eb3a3d56c 100644 --- a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc @@ -824,8 +824,6 @@ fd_t MaybeOpenCovFile(const char *name) { return CovOpenFile(&path, true /* packed */, name); } -void DumpCoverage() { coverage_data.DumpAll(); } - void CovBeforeFork() { coverage_data.BeforeFork(); } @@ -879,7 +877,7 @@ SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_init() { coverage_data.Init(); } SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_dump() { - DumpCoverage(); + coverage_data.DumpAll(); } SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_module_init(s32 *guards, uptr npcs, u8 *counters, |