golang/test/fixedbugs/issue38496.go

21 lines
440 B
Go

// run
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Make sure bounds check elision isn't confused with nil check elision.
package main
func main() {
defer func() {
err := recover()
if err == nil {
panic("failed to check nil ptr")
}
}()
var m [2]*int
_ = *m[1] // need a nil check, but not a bounds check
}