diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-01-26 23:42:41 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2016-01-26 23:42:41 +0000 |
commit | 3277051f78361732e644adead8253d36958c5534 (patch) | |
tree | b07fa27541899a1eebf926895892c423e3272843 /lib/cfi/cfi.cc | |
parent | c6d6fec58985563ffb87ecfd17587f65dd1163df (diff) |
[cfi] Exclude __cfi_slowpath_diag from the non-diag rtl.
Calls to __cfi_slowpath_diag are only emitted when building with
diagnostics, and linking the diag rtl.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@258881 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/cfi/cfi.cc')
-rw-r--r-- | lib/cfi/cfi.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/cfi/cfi.cc b/lib/cfi/cfi.cc index b5fbab387..fd9b5489e 100644 --- a/lib/cfi/cfi.cc +++ b/lib/cfi/cfi.cc @@ -296,7 +296,7 @@ void ExitLoader() { } ALWAYS_INLINE void CfiSlowPathCommon(u64 CallSiteTypeId, void *Ptr, - void *DiagData) { + void *DiagData) { uptr Addr = (uptr)Ptr; VReport(3, "__cfi_slowpath: %llx, %p\n", CallSiteTypeId, Ptr); ShadowValue sv = ShadowValue::load(Addr); @@ -362,10 +362,12 @@ __cfi_slowpath(u64 CallSiteTypeId, void *Ptr) { CfiSlowPathCommon(CallSiteTypeId, Ptr, nullptr); } +#ifdef CFI_ENABLE_DIAG extern "C" SANITIZER_INTERFACE_ATTRIBUTE void __cfi_slowpath_diag(u64 CallSiteTypeId, void *Ptr, void *DiagData) { CfiSlowPathCommon(CallSiteTypeId, Ptr, DiagData); } +#endif // Setup shadow for dlopen()ed libraries. // The actual shadow setup happens after dlopen() returns, which means that |