[compiler-rt] 93aec86 - Revert "Expose __hwasan_tag_mismatch_stub"
David Tellenbach via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 24 03:13:34 PDT 2019
Author: David Tellenbach
Date: 2019-10-24T11:11:05+01:00
New Revision: 93aec861f5293d7d3b444c45e6f78e377840031b
URL: https://github.com/llvm/llvm-project/commit/93aec861f5293d7d3b444c45e6f78e377840031b
DIFF: https://github.com/llvm/llvm-project/commit/93aec861f5293d7d3b444c45e6f78e377840031b.diff
LOG: Revert "Expose __hwasan_tag_mismatch_stub"
Attribution to author of patch got lost.
This reverts commit 612eadb7bc06b8f1a094976e06155f46ebd70d7c.
Added:
Modified:
compiler-rt/lib/hwasan/hwasan_interface_internal.h
compiler-rt/lib/hwasan/hwasan_linux.cpp
compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S
Removed:
################################################################################
diff --git a/compiler-rt/lib/hwasan/hwasan_interface_internal.h b/compiler-rt/lib/hwasan/hwasan_interface_internal.h
index aedda317497b..ca57f0fe437b 100644
--- a/compiler-rt/lib/hwasan/hwasan_interface_internal.h
+++ b/compiler-rt/lib/hwasan/hwasan_interface_internal.h
@@ -111,10 +111,6 @@ uptr __hwasan_tag_pointer(uptr p, u8 tag);
SANITIZER_INTERFACE_ATTRIBUTE
void __hwasan_tag_mismatch(uptr addr, u8 ts);
-SANITIZER_INTERFACE_ATTRIBUTE
-void __hwasan_tag_mismatch4(uptr addr, uptr access_info, uptr *registers_frame,
- size_t outsize);
-
SANITIZER_INTERFACE_ATTRIBUTE
u8 __hwasan_generate_tag();
diff --git a/compiler-rt/lib/hwasan/hwasan_linux.cpp b/compiler-rt/lib/hwasan/hwasan_linux.cpp
index dfef11883a28..948e40154fec 100644
--- a/compiler-rt/lib/hwasan/hwasan_linux.cpp
+++ b/compiler-rt/lib/hwasan/hwasan_linux.cpp
@@ -460,6 +460,21 @@ static bool HwasanOnSIGTRAP(int signo, siginfo_t *info, ucontext_t *uc) {
return true;
}
+// Entry point stub for interoperability between __hwasan_tag_mismatch (ASM) and
+// the rest of the mismatch handling code (C++).
+extern "C" void __hwasan_tag_mismatch_stub(uptr addr, uptr access_info,
+ uptr *registers_frame) {
+ AccessInfo ai;
+ ai.is_store = access_info & 0x10;
+ ai.recover = false;
+ ai.addr = addr;
+ ai.size = 1 << (access_info & 0xf);
+
+ HandleTagMismatch(ai, (uptr)__builtin_return_address(0),
+ (uptr)__builtin_frame_address(0), nullptr, registers_frame);
+ __builtin_unreachable();
+}
+
static void OnStackUnwind(const SignalContext &sig, const void *,
BufferedStackTrace *stack) {
stack->Unwind(StackTrace::GetNextInstructionPc(sig.pc), sig.bp, sig.context,
@@ -478,24 +493,4 @@ void HwasanOnDeadlySignal(int signo, void *info, void *context) {
} // namespace __hwasan
-// Entry point for interoperability between __hwasan_tag_mismatch (ASM) and the
-// rest of the mismatch handling code (C++).
-void __hwasan_tag_mismatch4(uptr addr, uptr access_info, uptr *registers_frame,
- size_t outsize) {
- __hwasan::AccessInfo ai;
- ai.is_store = access_info & 0x10;
- ai.is_load = !ai.is_store;
- ai.recover = access_info & 0x20;
- ai.addr = addr;
- if ((access_info & 0xf) == 0xf)
- ai.size = outsize;
- else
- ai.size = 1 << (access_info & 0xf);
-
- __hwasan::HandleTagMismatch(ai, (uptr)__builtin_return_address(0),
- (uptr)__builtin_frame_address(0), nullptr,
- registers_frame);
- __builtin_unreachable();
-}
-
#endif // SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD
diff --git a/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S b/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S
index 08df12736bb4..4c060a61e98e 100644
--- a/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S
+++ b/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S
@@ -135,12 +135,12 @@ __hwasan_tag_mismatch_v2:
stp x4, x5, [sp, #32]
stp x2, x3, [sp, #16]
- // Pass the address of the frame to __hwasan_tag_mismatch4, so that it can
+ // Pass the address of the frame to __hwasan_tag_mismatch_stub, so that it can
// extract the saved registers from this frame without having to worry about
// finding this frame.
mov x2, sp
- bl __hwasan_tag_mismatch4
+ bl __hwasan_tag_mismatch_stub
CFI_ENDPROC
.Lfunc_end0:
More information about the llvm-commits
mailing list