diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/runtime/runtime1.go | 11 |
1 files changed, 5 insertions, 6 deletions
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 } |
