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;