diff options
author | Russ Cox <rsc@golang.org> | 2014-10-28 23:22:46 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2014-10-28 23:22:46 -0400 |
commit | efd33d383f395d3518b94dd5e49bd039ad18d25a (patch) | |
tree | 40c3fd22b1b2518fa0514a523c05dad1e907f9c9 /test | |
parent | ffcd7c77ba223188fa35be495f65ae5c3d265914 (diff) | |
download | go-efd33d383f395d3518b94dd5e49bd039ad18d25a.tar.gz |
cmd/gc: fix internal compiler error in struct compare
Fixes issue 9006.
LGTM=r
R=r
CC=golang-codereviews
https://codereview.appspot.com/167800043
Diffstat (limited to 'test')
-rw-r--r-- | test/fixedbugs/issue9006.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/fixedbugs/issue9006.go b/test/fixedbugs/issue9006.go new file mode 100644 index 000000000..c559f58f1 --- /dev/null +++ b/test/fixedbugs/issue9006.go @@ -0,0 +1,37 @@ +// run + +// Copyright 2014 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 + +type T1 struct { + X int +} + +func NewT1(x int) T1 { return T1{x} } + +type T2 int + +func NewT2(x int) T2 { return T2(x) } + +func main() { + switch (T1{}) { + case NewT1(1): + panic("bad1") + case NewT1(0): + // ok + default: + panic("bad2") + } + + switch T2(0) { + case NewT2(2): + panic("bad3") + case NewT2(0): + // ok + default: + panic("bad4") + } +} |