From 5e7697b6275bb28bcfd18b2f21de9905164926dd Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Sun, 14 Aug 2022 19:08:00 +0700 Subject: [PATCH] test: add regression test for issue 43942 CL 356011 fixed this issue too. Fixes #43942 Change-Id: I35ad397e78eeb80eff3a4217c4d40f15d40bdebb Reviewed-on: https://go-review.googlesource.com/c/go/+/423814 Reviewed-by: Keith Randall Reviewed-by: Keith Randall Run-TryBot: Cuong Manh Le Reviewed-by: Matthew Dempsky TryBot-Result: Gopher Robot --- test/fixedbugs/issue43942.go | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 test/fixedbugs/issue43942.go diff --git a/test/fixedbugs/issue43942.go b/test/fixedbugs/issue43942.go new file mode 100644 index 0000000000..a37d664ce4 --- /dev/null +++ b/test/fixedbugs/issue43942.go @@ -0,0 +1,48 @@ +// run + +// Copyright 2022 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 + +import "log" + +func main() { + defer func() { + expect(5, recover()) + }() + func() { + expect(nil, recover()) + defer func() { + defer func() { + defer func() { + defer func() { + expect(3, recover()) + }() + defer panic(3) + panic(2) + }() + defer func() { + expect(1, recover()) + }() + panic(1) + }() + }() + }() + func() { + for { + defer func() { + defer panic(5) + }() + break + } + panic(4) + }() +} + +func expect(want, have interface{}) { + if want != have { + log.Fatalf("want %v, have %v", want, have) + } +} -- 2.50.0