Source file
test/fixedbugs/issue65417.go
1
2
3
4
5
6
7 package main
8
9 import (
10 "strings"
11 "unsafe"
12 )
13
14 func main() {
15 shouldPanic("runtime error: index out of range", func() { f(0) })
16 shouldPanic("runtime error: index out of range", func() { g(0) })
17 }
18
19 func f[T byte](t T) {
20 const str = "a"
21 _ = str[unsafe.Sizeof(t)]
22 }
23
24 func g[T byte](t T) {
25 const str = "a"
26 _ = str[unsafe.Sizeof(t)+0]
27 }
28
29 func shouldPanic(str string, f func()) {
30 defer func() {
31 err := recover()
32 if err == nil {
33 panic("did not panic")
34 }
35 s := err.(error).Error()
36 if !strings.Contains(s, str) {
37 panic("got panic " + s + ", want " + str)
38 }
39 }()
40
41 f()
42 }
43
View as plain text