// run // Copyright 2018 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 we don't prove that the bounds check failure branch is unreachable. package main //go:noinline func f(a []int) { _ = a[len(a)-1] } func main() { defer func() { if err := recover(); err != nil { return } panic("f should panic") }() f(nil) }