From f05cd4cde5f7023b1db23b7499cf9b1a6f3ffdec Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sun, 25 Sep 2016 12:37:00 -0700 Subject: [PATCH] runtime: simplify conditions testing g.paniconfault Implement a comment by Ralph Corderoy on CL 29754. Change-Id: I22bbede211ddcb8a057f16b4f47d335a156cc8d2 Reviewed-on: https://go-review.googlesource.com/29756 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/runtime/signal_unix.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/runtime/signal_unix.go b/src/runtime/signal_unix.go index 08e57ca0e5..3175118572 100644 --- a/src/runtime/signal_unix.go +++ b/src/runtime/signal_unix.go @@ -211,13 +211,21 @@ func sigpanic() { switch g.sig { case _SIGBUS: - if g.sigcode0 == _BUS_ADRERR && g.sigcode1 < 0x1000 || g.paniconfault { + if g.sigcode0 == _BUS_ADRERR && g.sigcode1 < 0x1000 { + panicmem() + } + // Support runtime/debug.SetPanicOnFault. + if g.paniconfault { panicmem() } print("unexpected fault address ", hex(g.sigcode1), "\n") throw("fault") case _SIGSEGV: - if (g.sigcode0 == 0 || g.sigcode0 == _SEGV_MAPERR || g.sigcode0 == _SEGV_ACCERR) && g.sigcode1 < 0x1000 || g.paniconfault { + if (g.sigcode0 == 0 || g.sigcode0 == _SEGV_MAPERR || g.sigcode0 == _SEGV_ACCERR) && g.sigcode1 < 0x1000 { + panicmem() + } + // Support runtime/debug.SetPanicOnFault. + if g.paniconfault { panicmem() } print("unexpected fault address ", hex(g.sigcode1), "\n") -- 2.48.1