// 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) | |
} |