From 118df525dd2d9bfb38736288211988ef142eaf3e Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 1 Mar 2012 08:24:03 -0800 Subject: test: add test of calling recover in a varargs function gccgo did not handle this correctly. R=golang-dev, rsc CC=golang-dev http://codereview.appspot.com/5714050 --- test/recover.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/recover.go') diff --git a/test/recover.go b/test/recover.go index d32cfdf3d..eea655ec5 100644 --- a/test/recover.go +++ b/test/recover.go @@ -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() + } +} -- cgit v1.2.1