summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2009-08-21 17:54:07 -0700
committerRuss Cox <rsc@golang.org>2009-08-21 17:54:07 -0700
commit4fd877ca26b185fad6cee453e9ecf73e063647a1 (patch)
treebbf0bae21fbd100f6fe2c9f4784a87e63ae727ab /test
parent99f98829fe3671aefc439329018ada0139e2ed99 (diff)
downloadgo-4fd877ca26b185fad6cee453e9ecf73e063647a1.tar.gz
fix crash in bug194; add bug196
R=ken OCL=33694 CL=33697
Diffstat (limited to 'test')
-rw-r--r--test/bugs/bug196.go49
-rw-r--r--test/golden.out7
2 files changed, 55 insertions, 1 deletions
diff --git a/test/bugs/bug196.go b/test/bugs/bug196.go
new file mode 100644
index 000000000..0aa055010
--- /dev/null
+++ b/test/bugs/bug196.go
@@ -0,0 +1,49 @@
+// $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug196
+
+// Copyright 2009 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
+
+var m = map[int]int{ 0: 0, 1: 0 }
+var nf = 0
+var i int
+
+func multi() (int, int) {
+ return 1,2
+}
+
+func xxx() {
+ var c chan int;
+ x, ok := <-c;
+
+ var m map[int]int;
+ x, ok = m[1];
+
+ var i interface{};
+ var xx int;
+ xx, ok = i.(int);
+
+ a,b := multi();
+}
+
+func f() map[int]int {
+ nf++;
+ return m;
+}
+
+func g() *int {
+ nf++;
+ return &i
+}
+
+func main() {
+ f()[0]++;
+ f()[1] += 2;
+ *g() %= 2;
+ if nf != 3 {
+ panicln("too many calls:", nf);
+ }
+
+}
diff --git a/test/golden.out b/test/golden.out
index 207313f59..2ccd4cf05 100644
--- a/test/golden.out
+++ b/test/golden.out
@@ -175,8 +175,13 @@ bugs/bug193.go:13: fatal error: optoas: no entry LSH-float
errchk: bugs/bug193.go:14: missing expected error: 'shift'
=========== bugs/bug194.go
+bugs/bug194.go:15: array index must be non-negative integer constant
BUG should compile and run
-$RUNFILE: line 1: PID Segmentation fault (core dumped) $G $D/$F.go
=========== bugs/bug195.go
bugs/bug195.go:9: BUG: errchk: compiler crashed
+
+=========== bugs/bug196.go
+too many calls: 5
+panic PC=xxx
+BUG: bug196