]> Cypherpunks repositories - gostls13.git/commitdiff
test: add new test that gofrontend failed to handle
authorIan Lance Taylor <iant@golang.org>
Sat, 5 Dec 2020 16:08:47 +0000 (08:08 -0800)
committerIan Lance Taylor <iant@golang.org>
Mon, 7 Dec 2020 17:29:52 +0000 (17:29 +0000)
The gofrontend code would in some circumstances incorrectly generate a
type descriptor for an alias type, causing the type to fail to be
equal to the unaliased type.

Change-Id: I47d33b0bfde3c72a9a186049539732bdd5a6a96e
Reviewed-on: https://go-review.googlesource.com/c/go/+/275632
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
test/fixedbugs/bug510.dir/a.go [new file with mode: 0644]
test/fixedbugs/bug510.dir/b.go [new file with mode: 0644]
test/fixedbugs/bug510.go [new file with mode: 0644]

diff --git a/test/fixedbugs/bug510.dir/a.go b/test/fixedbugs/bug510.dir/a.go
new file mode 100644 (file)
index 0000000..db1cfef
--- /dev/null
@@ -0,0 +1,13 @@
+// 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
+
+import "reflect"
+
+type A = map[int] bool
+
+func F() interface{} {
+       return reflect.New(reflect.TypeOf((*A)(nil))).Elem().Interface()
+}
diff --git a/test/fixedbugs/bug510.dir/b.go b/test/fixedbugs/bug510.dir/b.go
new file mode 100644 (file)
index 0000000..56b0201
--- /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 main
+
+import "./a"
+
+func main() {
+       _, ok := a.F().(*map[int]bool)
+       if !ok {
+               panic("bad type")
+       }
+}
diff --git a/test/fixedbugs/bug510.go b/test/fixedbugs/bug510.go
new file mode 100644 (file)
index 0000000..8a6da5d
--- /dev/null
@@ -0,0 +1,9 @@
+// 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 confused type descriptors for aliases.
+
+package ignored