diff mbox

[2/9] Gccgo port to s390[x] -- part I

Message ID 20140909124942.GC25290@linux.vnet.ibm.com
State New
Headers show

Commit Message

Dominik Vogt Sept. 9, 2014, 12:49 p.m. UTC
A test case added to golang for the previous patch.

gcc/testsuite/ChangeLog
2014-09-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>

        * go.test/test/recover.go (test1): Test recover() from deferred
        recursive function.

Ciao

Dominik ^_^  ^_^

Comments

Ian Lance Taylor Oct. 9, 2014, 6:53 p.m. UTC | #1
On Tue, Sep 9, 2014 at 5:49 AM, Dominik Vogt <vogt@linux.vnet.ibm.com> wrote:
> A test case added to golang for the previous patch.
>
> gcc/testsuite/ChangeLog
> 2014-09-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
>
>         * go.test/test/recover.go (test1): Test recover() from deferred
>         recursive function.

Proposed for master testsuite as
http://codereview.appspot.com/151630043 .  I also included your later
test from PR 60406.

Ian
diff mbox

Patch

From a3cc3d043d580d083f5dd573cb66d299cd985604 Mon Sep 17 00:00:00 2001
From: Dominik Vogt <vogt@linux.vnet.ibm.com>
Date: Tue, 9 Sep 2014 09:30:09 +0100
Subject: [PATCH 2/9] TEST: Add a recover test.

---
 gcc/testsuite/go.test/test/recover.go | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gcc/testsuite/go.test/test/recover.go b/gcc/testsuite/go.test/test/recover.go
index 071be66..b31b5ac 100644
--- a/gcc/testsuite/go.test/test/recover.go
+++ b/gcc/testsuite/go.test/test/recover.go
@@ -113,10 +113,23 @@  func withoutRecover() {
 	mustNotRecover() // because it's a sub-call
 }
 
+func withoutRecoverRecursive(n int) {
+	if (n == 0) {
+		withoutRecoverRecursive(1)
+	} else {
+		v := recover()
+		if v != nil {
+			println("spurious recover (recursive)", v)
+			die()
+		}
+	}
+}
+
 func test1() {
 	defer mustNotRecover() // because mustRecover will squelch it
 	defer mustRecover(1)   // because of panic below
 	defer withoutRecover() // should be no-op, leaving for mustRecover to find
+	defer withoutRecoverRecursive(0) // ditto
 	panic(1)
 }
 
-- 
1.8.4.2