runtime: rename _defer struct _panic field to panicStack
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 22 Jun 2017 14:31:16 +0000 (14:31 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 22 Jun 2017 14:31:16 +0000 (14:31 +0000)
    The gc version of the _defer struct has a _panic field that has a
    completely different meaning. We are going to want that bring that new
    meaning into the gofrontend to improve panic reports with nested
    panic calls. Simplify that by first renaming the existing _panic field.

    Reviewed-on: https://go-review.googlesource.com/46454

From-SVN: r249558

gcc/go/gofrontend/MERGE
libgo/go/runtime/panic.go
libgo/go/runtime/runtime2.go

index cb9022431e196ba83df30ac5b76bdf5fb17cf873..8ce40175bb34077cc2f164001d881d4387aaab93 100644 (file)
@@ -1,4 +1,4 @@
-a81079a81b63714221674f07d13bedc768092f27
+a459f1fdfe0bd365bf2def730e1529052c6487fd
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index aa196aee7b564e52d93fab76e94a56bc68ba5616..bbd34b40131de18e46c8305c5939538ea39e9a93 100644 (file)
@@ -90,13 +90,13 @@ func throwinit() {
 // pfn is a C function pointer.
 // arg is a value to pass to pfn.
 func deferproc(frame *bool, pfn uintptr, arg unsafe.Pointer) {
-       n := newdefer()
-       n.frame = frame
-       n._panic = getg()._panic
-       n.pfn = pfn
-       n.arg = arg
-       n.retaddr = 0
-       n.makefunccanrecover = false
+       d := newdefer()
+       d.frame = frame
+       d.panicStack = getg()._panic
+       d.pfn = pfn
+       d.arg = arg
+       d.retaddr = 0
+       d.makefunccanrecover = false
 }
 
 // Allocate a Defer, usually using per-P pool.
@@ -502,7 +502,7 @@ func currentDefer() *_defer {
        // the panic stack. We do not want to recover it if that panic
        // was on the top of the panic stack when this function was
        // deferred.
-       if d._panic == gp._panic {
+       if d.panicStack == gp._panic {
                return nil
        }
 
@@ -731,7 +731,7 @@ func gorecover() interface{} {
 // function like recover.
 func deferredrecover() interface{} {
        gp := getg()
-       if gp._defer == nil || gp._defer._panic != gp._panic {
+       if gp._defer == nil || gp._defer.panicStack != gp._panic {
                return nil
        }
        return gorecover()
index 8bfdcbc9523addaa8081dbe082ab4f21dea6f64b..f532a3b2ba9d1ee5bf78649cf72c1a916c4846e5 100644 (file)
@@ -698,7 +698,7 @@ type _defer struct {
        // deferred.  This function can not recover this value from
        // the panic stack.  This can happen if a deferred function
        // has a defer statement itself.
-       _panic *_panic
+       panicStack *_panic
 
        // The function to call.
        pfn uintptr