]> Cypherpunks.ru repositories - gostls13.git/commitdiff
test: add test of calling recover in a varargs function
authorIan Lance Taylor <iant@golang.org>
Thu, 1 Mar 2012 16:24:03 +0000 (08:24 -0800)
committerIan Lance Taylor <iant@golang.org>
Thu, 1 Mar 2012 16:24:03 +0000 (08:24 -0800)
gccgo did not handle this correctly.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5714050

test/recover.go

index d32cfdf3d1420fc389c298a2f844455336a37936..eea655ec5789f2eb7370e968cf29688aa49869b4 100644 (file)
@@ -244,3 +244,30 @@ func test7() {
                die()
        }
 }
+
+func varargs(s *int, a ...int) {
+       *s = 0
+       for _, v := range a {
+               *s += v
+       }
+       if recover() != nil {
+               *s += 100
+       }
+}
+
+func test8a() (r int) {
+       defer varargs(&r, 1, 2, 3)
+       panic(0)
+}
+
+func test8b() (r int) {
+       defer varargs(&r, 4, 5, 6)
+       return
+}
+
+func test8() {
+       if test8a() != 106 || test8b() != 15 {
+               println("wrong value")
+               die()
+       }
+}