aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/fixedbugs/issue65962.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/fixedbugs/issue65962.go b/test/fixedbugs/issue65962.go
new file mode 100644
index 0000000000..a60cd32fd1
--- /dev/null
+++ b/test/fixedbugs/issue65962.go
@@ -0,0 +1,48 @@
+// run
+
+// Copyright 2024 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
+
+func main() {
+ test1()
+ test2()
+}
+
+type I interface {
+ f()
+ g()
+ h()
+}
+
+//go:noinline
+func ld[T any]() {
+ var x I
+ if _, ok := x.(T); ok {
+ }
+}
+
+func isI(x any) {
+ _ = x.(I)
+}
+
+func test1() {
+ defer func() { recover() }()
+ ld[bool]() // add <bool,I> itab to binary
+ _ = any(false).(I)
+}
+
+type B bool
+
+func (B) f() {
+}
+func (B) g() {
+}
+
+func test2() {
+ defer func() { recover() }()
+ ld[B]() // add <B,I> itab to binary
+ _ = any(B(false)).(I)
+}