diff options
Diffstat (limited to 'src/runtime/signal_windows.go')
| -rw-r--r-- | src/runtime/signal_windows.go | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/runtime/signal_windows.go b/src/runtime/signal_windows.go index d123276d3e..3af2e39b08 100644 --- a/src/runtime/signal_windows.go +++ b/src/runtime/signal_windows.go @@ -43,16 +43,9 @@ func initExceptionHandler() { // //go:nosplit func isAbort(r *context) bool { - switch GOARCH { - case "386", "amd64": - // In the case of an abort, the exception IP is one byte after - // the INT3 (this differs from UNIX OSes). - return isAbortPC(r.ip() - 1) - case "arm": - return isAbortPC(r.ip()) - default: - return false - } + // In the case of an abort, the exception IP is one byte after + // the INT3 (this differs from UNIX OSes). + return isAbortPC(r.ip() - 1) } // isgoexception reports whether this exception should be translated @@ -242,9 +235,12 @@ func sigpanic() { switch g.sig { case _EXCEPTION_ACCESS_VIOLATION: - if g.sigcode1 < 0x1000 || g.paniconfault { + if g.sigcode1 < 0x1000 { panicmem() } + if g.paniconfault { + panicmemAddr(g.sigcode1) + } print("unexpected fault address ", hex(g.sigcode1), "\n") throw("fault") case _EXCEPTION_INT_DIVIDE_BY_ZERO: |
