diff options
| author | Ian Lance Taylor <iant@golang.org> | 2018-06-28 16:45:28 -0700 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2018-06-29 21:29:17 +0000 |
| commit | f43aa1df701d7190eeaf301d3a41e1714c516c45 (patch) | |
| tree | 452f2ee9d5e13b5de4c3a2de36d8dff850cf9488 /src/runtime/export_test.go | |
| parent | 955cc07dde70415489fb2096eb575654181e21fe (diff) | |
| download | go-f43aa1df701d7190eeaf301d3a41e1714c516c45.tar.xz | |
runtime: throw if the runtime panics with out of bounds index
If the runtime code panics due to a bad index or slice expression,
then throw instead of panicing. This will skip calls to recover and dump
the entire runtime stack trace. The runtime should never panic due to
an out of bounds index, and this will help with debugging if it does.
For #24991
Updates #25201
Change-Id: I85a9feded8f0de914ee1558425931853223c0514
Reviewed-on: https://go-review.googlesource.com/121515
Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/runtime/export_test.go')
| -rw-r--r-- | src/runtime/export_test.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/runtime/export_test.go b/src/runtime/export_test.go index b21179cc8c..7ebdfc1520 100644 --- a/src/runtime/export_test.go +++ b/src/runtime/export_test.go @@ -451,3 +451,13 @@ type G = g func Getg() *G { return getg() } + +//go:noinline +func PanicForTesting(b []byte, i int) byte { + return unexportedPanicForTesting(b, i) +} + +//go:noinline +func unexportedPanicForTesting(b []byte, i int) byte { + return b[i] +} |
