Initial commit: Go 1.23 release state
This commit is contained in:
10
test/linkname.dir/linkname1.go
Normal file
10
test/linkname.dir/linkname1.go
Normal file
@@ -0,0 +1,10 @@
|
||||
package x
|
||||
|
||||
func indexByte(xs []byte, b byte) int { // ERROR "xs does not escape" "can inline indexByte"
|
||||
for i, x := range xs {
|
||||
if x == b {
|
||||
return i
|
||||
}
|
||||
}
|
||||
return -1
|
||||
}
|
||||
13
test/linkname.dir/linkname2.go
Normal file
13
test/linkname.dir/linkname2.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package y
|
||||
|
||||
import _ "unsafe"
|
||||
|
||||
//go:linkname byteIndex test/linkname1.indexByte
|
||||
func byteIndex(xs []byte, b byte) int // ERROR "leaking param: xs"
|
||||
|
||||
func ContainsSlash(data []byte) bool { // ERROR "leaking param: data" "can inline ContainsSlash"
|
||||
if byteIndex(data, '/') != -1 {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
11
test/linkname.dir/linkname3.go
Normal file
11
test/linkname.dir/linkname3.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package main
|
||||
|
||||
import _ "./linkname1"
|
||||
import "./linkname2"
|
||||
|
||||
func main() { // ERROR "can inline main"
|
||||
str := "hello/world"
|
||||
bs := []byte(str) // ERROR "\(\[\]byte\)\(str\) escapes to heap"
|
||||
if y.ContainsSlash(bs) { // ERROR "inlining call to y.ContainsSlash"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user