2024-09-16 12:07:43 -06:00
|
|
|
// 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
|
|
|
|
|
2024-09-16 13:58:36 -06:00
|
|
|
// A function that calls sys.GetCallerPC or sys.GetCallerSP
|
2024-09-16 12:07:43 -06:00
|
|
|
// cannot be inlined, no matter how small it is.
|
|
|
|
|
|
|
|
func GetCallerPC() uintptr
|
2024-09-16 13:58:36 -06:00
|
|
|
func GetCallerSP() uintptr
|
2024-09-16 12:07:43 -06:00
|
|
|
|
|
|
|
func pc() uintptr {
|
|
|
|
return GetCallerPC() + 1
|
|
|
|
}
|
|
|
|
|
|
|
|
func cpc() uintptr { // ERROR "can inline cpc"
|
|
|
|
return pc() + 2
|
|
|
|
}
|
2024-09-16 13:58:36 -06:00
|
|
|
|
|
|
|
func sp() uintptr {
|
|
|
|
return GetCallerSP() + 3
|
|
|
|
}
|
|
|
|
|
|
|
|
func csp() uintptr { // ERROR "can inline csp"
|
|
|
|
return sp() + 4
|
|
|
|
}
|