mirror of
https://github.com/golang/go
synced 2024-11-26 17:26:56 -07:00
4f881115d4
Moving these intrinsics to a base package enables other internal/runtime packages to use them. For #54766. Change-Id: I45a530422207dd94b5ad4eee51216c9410a84040 Reviewed-on: https://go-review.googlesource.com/c/go/+/613261 Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
30 lines
617 B
Go
30 lines
617 B
Go
// errorcheck -0 -+ -p=internal/runtime/sys -m
|
|
|
|
// Copyright 2024 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package sys
|
|
|
|
// A function that calls sys.GetCallerPC or sys.GetCallerSP
|
|
// cannot be inlined, no matter how small it is.
|
|
|
|
func GetCallerPC() uintptr
|
|
func GetCallerSP() uintptr
|
|
|
|
func pc() uintptr {
|
|
return GetCallerPC() + 1
|
|
}
|
|
|
|
func cpc() uintptr { // ERROR "can inline cpc"
|
|
return pc() + 2
|
|
}
|
|
|
|
func sp() uintptr {
|
|
return GetCallerSP() + 3
|
|
}
|
|
|
|
func csp() uintptr { // ERROR "can inline csp"
|
|
return sp() + 4
|
|
}
|