This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r249590 - in /trunk: gcc/go/gofrontend/MERGE li...
- From: ian at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 23 Jun 2017 13:45:40 -0000
- Subject: r249590 - in /trunk: gcc/go/gofrontend/MERGE li...
Author: ian
Date: Fri Jun 23 13:45:36 2017
New Revision: 249590
URL: https://gcc.gnu.org/viewcvs?rev=249590&root=gcc&view=rev
Log:
runtime: improve handling of panic during deferred function
When a panic occurs while processing a deferred function that
recovered an earlier panic, we shouldn't report the recovered panic
in the panic stack trace. Stop doing so by keeping track of the panic
that triggered a defer, marking it as aborted if we see the defer again,
and discarding aborted panics when a panic is recovered. This is what
the gc runtime does.
The test for this is TestRecursivePanic in runtime/crash_test.go.
We don't run that test yet, but we will soon.
Reviewed-on: https://go-review.googlesource.com/46461
Modified:
trunk/gcc/go/gofrontend/MERGE
trunk/libgo/go/runtime/panic.go
trunk/libgo/go/runtime/runtime2.go