BLACKSITE
:
216.73.217.80
:
91.108.101.54 / wf-saudi.com
:
Linux fr-int-web1425.main-hosting.eu 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
:
/
opt
/
golang
/
1.22.0
/
test
/
Upload File:
files >> //opt/golang/1.22.0/test/escape_calls.go
// errorcheck -0 -m -l // Copyright 2015 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. // Test escape analysis for function parameters. // In this test almost everything is BAD except the simplest cases // where input directly flows to output. package foo func f(buf []byte) []byte { // ERROR "leaking param: buf to result ~r0 level=0$" return buf } func g(*byte) string func h(e int) { var x [32]byte // ERROR "moved to heap: x$" g(&f(x[:])[0]) } type Node struct { s string left, right *Node } func walk(np **Node) int { // ERROR "leaking param content: np" n := *np w := len(n.s) if n == nil { return 0 } wl := walk(&n.left) wr := walk(&n.right) if wl < wr { n.left, n.right = n.right, n.left // ERROR "ignoring self-assignment" wl, wr = wr, wl } *np = n return w + wl + wr } // Test for bug where func var f used prototype's escape analysis results. func prototype(xyz []string) {} // ERROR "xyz does not escape" func bar() { var got [][]string f := prototype f = func(ss []string) { got = append(got, ss) } // ERROR "leaking param: ss" "func literal does not escape" s := "string" f([]string{s}) // ERROR "\[\]string{...} escapes to heap" } func strmin(a, b, c string) string { // ERROR "leaking param: a to result ~r0 level=0" "leaking param: b to result ~r0 level=0" "leaking param: c to result ~r0 level=0" return min(a, b, c) } func strmax(a, b, c string) string { // ERROR "leaking param: a to result ~r0 level=0" "leaking param: b to result ~r0 level=0" "leaking param: c to result ~r0 level=0" return max(a, b, c) }