mirror of
https://github.com/golang/go
synced 2024-09-04 15:34:21 +00:00
[dev.typeparams] runtime: fix misuse of funcPC
funcPC expects a func value. There are places where we pass an unsafe.Pointer, which is technically undefined. In proc.go it is actually representing a func value, so the expression does the right thing. Cast to a func value so it is clearer. In os_freebsd.go it is a raw function pointer. Using funcPC on a raw function pointer is incorrect. Just use it directly instead. Change-Id: I3c5d61cea08f0abf5737834b520f9f1b583c1d34 Reviewed-on: https://go-review.googlesource.com/c/go/+/321953 Trust: Cherry Mui <cherryyz@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
parent
7d928460a1
commit
6a81e063dd
|
@ -237,7 +237,7 @@ func newosproc0(stacksize uintptr, fn unsafe.Pointer) {
|
|||
// However, newosproc0 is currently unreachable because builds
|
||||
// utilizing c-shared/c-archive force external linking.
|
||||
param := thrparam{
|
||||
start_func: funcPC(fn),
|
||||
start_func: uintptr(fn),
|
||||
arg: nil,
|
||||
stack_base: uintptr(stack), //+stacksize?
|
||||
stack_size: stacksize,
|
||||
|
|
|
@ -6487,7 +6487,8 @@ func doInit(t *initTask) {
|
|||
// Load stats non-atomically since tracinit is updated only by this init goroutine.
|
||||
after := inittrace
|
||||
|
||||
pkg := funcpkgpath(findfunc(funcPC(firstFunc)))
|
||||
f := *(*func())(unsafe.Pointer(&firstFunc))
|
||||
pkg := funcpkgpath(findfunc(funcPC(f)))
|
||||
|
||||
var sbuf [24]byte
|
||||
print("init ", pkg, " @")
|
||||
|
|
Loading…
Reference in a new issue