diff --git a/plan9/syscall.go b/plan9/syscall.go index 03230010..b9941873 100644 --- a/plan9/syscall.go +++ b/plan9/syscall.go @@ -21,6 +21,8 @@ // holds a value of type syscall.ErrorString. package plan9 +import "unsafe" + // ByteSliceFromString returns a NUL-terminated slice of bytes // containing the text of s. If s contains a NUL byte at any // location, it returns (nil, EINVAL). @@ -65,3 +67,8 @@ func (ts *Timespec) Nano() int64 { func (tv *Timeval) Nano() int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 } + +// use is a no-op, but the compiler cannot see that it is. +// Calling use(p) ensures that p is kept live until that point. +//go:noescape +func use(p unsafe.Pointer)