diff options
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | libgo/go/runtime/cgo_gccgo.go | 2 | ||||
-rw-r--r-- | libgo/go/runtime/proc.go | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index aebab77..d4a3129 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -61222d34c1b33a369bd86008a0541455dd17727e +908fc7e46ebe36658ed86b65a3d165fccb2e8576 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/runtime/cgo_gccgo.go b/libgo/go/runtime/cgo_gccgo.go index a55fb43..b0ad2f1 100644 --- a/libgo/go/runtime/cgo_gccgo.go +++ b/libgo/go/runtime/cgo_gccgo.go @@ -54,7 +54,7 @@ func CgocallDone() { // If we are invoked because the C function called _cgo_panic, // then _cgo_panic will already have exited syscall mode. - if gp.atomicstatus == _Gsyscall { + if readgstatus(gp)&^_Gscan == _Gsyscall { exitsyscall(0) } diff --git a/libgo/go/runtime/proc.go b/libgo/go/runtime/proc.go index 64735e2..038f20e 100644 --- a/libgo/go/runtime/proc.go +++ b/libgo/go/runtime/proc.go @@ -1459,7 +1459,7 @@ func dropm() { // gccgo sets the stack to Gdead here, because the splitstack // context is not initialized. - mp.curg.atomicstatus = _Gdead + atomic.Store(&mp.curg.atomicstatus, _Gdead) mp.curg.gcstack = nil mp.curg.gcnextsp = nil |