Module Name: src
Committed By: christos
Date: Thu Oct 28 11:22:41 UTC 2021
Modified Files:
src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common:
sanitizer_linux.cc
Log Message:
fix sparc: use mcontext to fetch pc and sp
To generate a diff of this commit:
cvs rdiff -u -r1.40 -r1.41 \
src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc
diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc:1.40 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc:1.41
--- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc:1.40 Sun Apr 11 19:54:27 2021
+++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_linux.cc Thu Oct 28 07:22:41 2021
@@ -1930,12 +1930,12 @@ SignalContext::WriteFlag SignalContext::
// From OpenSolaris $SRC/uts/sun4/os/trap.c (get_accesstype).
# if SANITIZER_SOLARIS
uptr pc = ucontext->uc_mcontext.gregs[REG_PC];
+# elif SANITIZER_NETBSD
+ uptr pc = ucontext->uc_mcontext.__gregs[_REG_PC];
# else
// Historical BSDism here.
struct sigcontext *scontext = (struct sigcontext *)ucontext;
-# if SANITIZER_NETBSD
- uptr pc = scontext->sc_pc;
-# elif defined(__arch64__)
+# if defined(__arch64__)
uptr pc = scontext->sigc_regs.tpc;
# else
uptr pc = scontext->si_regs.pc;
@@ -2040,6 +2040,9 @@ static void GetPcSpBp(void *context, upt
ucontext_t *ucontext = (ucontext_t*)context;
*pc = ucontext->uc_mcontext.gregs[REG_PC];
*sp = ucontext->uc_mcontext.gregs[REG_O6] + STACK_BIAS;
+# elif SANITIZER_NETBSD
+ *pc = ucontext->uc_mcontext.__gregs[REG_PC];
+ *sp = ucontext->uc_mcontext.__gregs[REG_O6] + STACK_BIAS;
# else
// Historical BSDism here.
struct sigcontext *scontext = (struct sigcontext *)context;