aboutsummaryrefslogtreecommitdiff
path: root/test/fixedbugs/issue8947.go
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2014-10-27 17:17:06 -0400
committerAustin Clements <austin@google.com>2014-10-27 17:17:06 -0400
commit5a653089ef756ecda170e4ee030480d547496362 (patch)
treefe2c3550eb05fe487b5870dfef3d06972582c1a9 /test/fixedbugs/issue8947.go
parent32c75a2d3d121f31ace325d48d9fcbdde58cc042 (diff)
parent3e62d2184ab2d2ac6053e3f4af5e3f99902c1e32 (diff)
downloadgo-5a653089ef756ecda170e4ee030480d547496362.tar.xz
[dev.power64] all: merge default into dev.power64
LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/164110043
Diffstat (limited to 'test/fixedbugs/issue8947.go')
-rw-r--r--test/fixedbugs/issue8947.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/fixedbugs/issue8947.go b/test/fixedbugs/issue8947.go
new file mode 100644
index 0000000000..f40c02e998
--- /dev/null
+++ b/test/fixedbugs/issue8947.go
@@ -0,0 +1,53 @@
+// 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.
+
+// Some uses of zeroed constants in non-assignment
+// expressions broke with our more aggressive zeroing
+// of assignments (internal compiler errors).
+
+package main
+
+func f1() {
+ type T [2]int
+ p := T{0, 1}
+ switch p {
+ case T{0, 0}:
+ panic("wrong1")
+ case T{0, 1}:
+ // ok
+ default:
+ panic("wrong2")
+ }
+
+ if p == (T{0, 0}) {
+ panic("wrong3")
+ } else if p == (T{0, 1}) {
+ // ok
+ } else {
+ panic("wrong4")
+ }
+}
+
+type T struct {
+ V int
+}
+
+var X = T{}.V
+
+func f2() {
+ var x = T{}.V
+ if x != 0 {
+ panic("wrongx")
+ }
+ if X != 0 {
+ panic("wrongX")
+ }
+}
+
+func main() {
+ f1()
+ f2()
+}