From 29d925dfcf7dc577e46d4557a5ef6eaa7f2a67af Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Thu, 16 Apr 2020 18:26:12 -0700 Subject: [PATCH] test: add test for nil check / bounds check compiler confusion This test started failing at CL 228106 and was fixed by CL 228677. Fixes #38496 Change-Id: I2dadcd99227347e8d28179039f5f345e728c4595 Reviewed-on: https://go-review.googlesource.com/c/go/+/228698 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Matthew Dempsky Reviewed-by: Keith Randall --- test/fixedbugs/issue38496.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 test/fixedbugs/issue38496.go diff --git a/test/fixedbugs/issue38496.go b/test/fixedbugs/issue38496.go new file mode 100644 index 0000000000..717aa5d41d --- /dev/null +++ b/test/fixedbugs/issue38496.go @@ -0,0 +1,20 @@ +// 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 +}