From: Austin Clements Date: Tue, 7 Mar 2017 20:24:02 +0000 (-0500) Subject: runtime: honor GOTRACEBACK=crash even if _g_.m.traceback != 0 X-Git-Tag: go1.9beta1~1244 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=caa7dacfd27beb493c262b18a9aae514863ddec7;p=gostls13.git runtime: honor GOTRACEBACK=crash even if _g_.m.traceback != 0 Change-Id: I6de1ef8f67bde044b8706c01e98400e266e1f8f0 Reviewed-on: https://go-review.googlesource.com/37857 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Keith Randall --- diff --git a/src/runtime/runtime1.go b/src/runtime/runtime1.go index 3d4578844b..2f7317b501 100644 --- a/src/runtime/runtime1.go +++ b/src/runtime/runtime1.go @@ -35,15 +35,14 @@ var traceback_env uint32 //go:nosplit func gotraceback() (level int32, all, crash bool) { _g_ := getg() - all = _g_.m.throwing > 0 + t := atomic.Load(&traceback_cache) + crash = t&tracebackCrash != 0 + all = _g_.m.throwing > 0 || t&tracebackAll != 0 if _g_.m.traceback != 0 { level = int32(_g_.m.traceback) - return + } else { + level = int32(t >> tracebackShift) } - t := atomic.Load(&traceback_cache) - crash = t&tracebackCrash != 0 - all = all || t&tracebackAll != 0 - level = int32(t >> tracebackShift) return }