]> Cypherpunks repositories - gostls13.git/commitdiff
test: add test case that caused gccgo undefined symbol reference
authorIan Lance Taylor <iant@golang.org>
Fri, 14 Aug 2020 21:39:19 +0000 (14:39 -0700)
committerIan Lance Taylor <iant@golang.org>
Sat, 15 Aug 2020 00:23:28 +0000 (00:23 +0000)
For #40252

Change-Id: Ie23d2789ca9b4b9081adb39ab64c80c412ad58ce
Reviewed-on: https://go-review.googlesource.com/c/go/+/248637
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

test/fixedbugs/issue40252.dir/a.go [new file with mode: 0644]
test/fixedbugs/issue40252.dir/main.go [new file with mode: 0644]
test/fixedbugs/issue40252.go [new file with mode: 0644]

diff --git a/test/fixedbugs/issue40252.dir/a.go b/test/fixedbugs/issue40252.dir/a.go
new file mode 100644 (file)
index 0000000..5519e93
--- /dev/null
@@ -0,0 +1,14 @@
+// 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.
+
+package a
+
+type I interface {
+       Func()
+}
+
+func Call() {
+       f := I.Func
+       f(nil)
+}
diff --git a/test/fixedbugs/issue40252.dir/main.go b/test/fixedbugs/issue40252.dir/main.go
new file mode 100644 (file)
index 0000000..93f5b70
--- /dev/null
@@ -0,0 +1,16 @@
+// 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.
+
+package main
+
+import "./a"
+
+func main() {
+       defer func() {
+               if recover() == nil {
+                       panic("expected nil pointer dereference")
+               }
+       }()
+       a.Call()
+}
diff --git a/test/fixedbugs/issue40252.go b/test/fixedbugs/issue40252.go
new file mode 100644 (file)
index 0000000..9be4e66
--- /dev/null
@@ -0,0 +1,8 @@
+// rundir
+
+// 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.
+
+// gccgo got an undefined symbol reference when inlining a method expression.
+package ignored