Commit 5b78cee3 authored by Shenghou Ma's avatar Shenghou Ma

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
parent 806dea82
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment