mirror of
https://github.com/golang/go
synced 2024-11-12 09:20:22 -07:00
runtime: fix stack pointer corruption in runtime.cgocallback_gofunc()
runtime.setmg() calls another function (cgo_save_gm), so it must save LR onto stack. Re-enabled TestCthread test in misc/cgo/test. Fixes #4863. R=golang-dev, r CC=golang-dev https://golang.org/cl/9019043
This commit is contained in:
parent
806dea82d4
commit
5b78cee376
@ -8,7 +8,6 @@ package cgotest
|
||||
import "C"
|
||||
|
||||
import (
|
||||
"runtime"
|
||||
"sync"
|
||||
"testing"
|
||||
)
|
||||
@ -31,10 +30,6 @@ func Add(x int) {
|
||||
}
|
||||
|
||||
func testCthread(t *testing.T) {
|
||||
if runtime.GOARCH == "arm" {
|
||||
t.Skip("testCthread disabled on arm")
|
||||
}
|
||||
|
||||
sum.i = 0
|
||||
C.doAdd(10, 6)
|
||||
|
||||
|
@ -417,7 +417,7 @@ havem:
|
||||
RET
|
||||
|
||||
// void setmg(M*, G*); set m and g. for use by needm.
|
||||
TEXT runtime·setmg(SB), 7, $-4
|
||||
TEXT runtime·setmg(SB), 7, $0
|
||||
MOVW mm+0(FP), m
|
||||
MOVW gg+4(FP), g
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user