With the gc toolchain apparently
var s *string
_ = *s
is enough to panic with a nil pointer dereference. The gccgo compiler
will simply discard the dereference, which I think is a reasonable and
acceptable optimization. Change the tests to use an exported variable
instead. The tests are not currently run, but they will be with a
later patch to gotools.
Reviewed-on: https://go-review.googlesource.com/46450
From-SVN: r249562
-b5c9fe259ec43f8079581c3bea0f1d12d85213a7
+8804c912363320e0c229c5a471fb6f4b9e5965e6
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
register("Crash", Crash)
}
+var NilPointer *string
+
func test(name string) {
defer func() {
if x := recover(); x != nil {
fmt.Printf(" done\n")
}()
fmt.Printf("%s:", name)
- var s *string
- _ = *s
+ *NilPointer = name
fmt.Print("SHOULD NOT BE HERE")
}
register("Crash", Crash)
}
+var NilPointer *string
+
func test(name string) {
defer func() {
if x := recover(); x != nil {
fmt.Printf(" done\n")
}()
fmt.Printf("%s:", name)
- var s *string
- _ = *s
+ *NilPointer = name
fmt.Print("SHOULD NOT BE HERE")
}