D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
3206095
/
root
/
opt
/
golang
/
1.22.0
/
test
/
uintptrescapes.dir
/
Filename :
a.go
back
Copy
// Copyright 2016 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 a import ( "unsafe" ) func recurse(i int, s []byte) byte { s[0] = byte(i) if i == 0 { return s[i] } else { var a [1024]byte r := recurse(i-1, a[:]) return r + a[0] } } //go:uintptrescapes func F1(a uintptr) { var s [16]byte recurse(4096, s[:]) *(*int)(unsafe.Pointer(a)) = 42 } //go:uintptrescapes func F2(a ...uintptr) { var s [16]byte recurse(4096, s[:]) *(*int)(unsafe.Pointer(a[0])) = 42 } type t struct{} func GetT() *t { return &t{} } //go:uintptrescapes func (*t) M1(a uintptr) { var s [16]byte recurse(4096, s[:]) *(*int)(unsafe.Pointer(a)) = 42 } //go:uintptrescapes func (*t) M2(a ...uintptr) { var s [16]byte recurse(4096, s[:]) *(*int)(unsafe.Pointer(a[0])) = 42 }