1
0
mirror of https://github.com/golang/go synced 2024-09-25 09:10:14 -06: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:
Shenghou Ma 2013-04-30 04:13:32 +08:00
parent 806dea82d4
commit 5b78cee376
2 changed files with 1 additions and 6 deletions

View File

@ -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)

View File

@ -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