aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2025-10-22 10:13:44 -0700
committerKeith Randall <khr@golang.org>2025-10-28 10:24:14 -0700
commitbd4dc413cd80d3c160e875686e1be1eae5d48d4b (patch)
tree5bcdfde599c4c70d7bc9d8e799cba84addb4021d /test
parent30c047d0d06cdbc2983e86daaa3b0bc1afb86706 (diff)
downloadgo-bd4dc413cd80d3c160e875686e1be1eae5d48d4b.tar.xz
cmd/compile: don't optimize away a panicing interface comparison
We can't do direct pointer comparisons if the type is not a comparable type. Fixes #76008 Change-Id: I1687acff21832d2c2e8f3b875e7b5ec125702ef3 Reviewed-on: https://go-review.googlesource.com/c/go/+/713840 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com>
Diffstat (limited to 'test')
-rw-r--r--test/fixedbugs/issue76008.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/fixedbugs/issue76008.go b/test/fixedbugs/issue76008.go
new file mode 100644
index 0000000000..bdf273bca1
--- /dev/null
+++ b/test/fixedbugs/issue76008.go
@@ -0,0 +1,35 @@
+// run
+
+// Copyright 2025 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.
+
+package main
+
+import "runtime"
+
+func main() {
+ shouldPanic(func() {
+ g = any(func() {}) == any(func() {})
+ })
+ shouldPanic(func() {
+ g = any(map[int]int{}) == any(map[int]int{})
+ })
+ shouldPanic(func() {
+ g = any([]int{}) == any([]int{})
+ })
+}
+
+var g bool
+
+func shouldPanic(f func()) {
+ defer func() {
+ err := recover()
+ if err == nil {
+ _, _, line, _ := runtime.Caller(2)
+ println("did not panic at line", line+1)
+ }
+ }()
+
+ f()
+}