Commit b7f9c640 authored by Iskander Sharipov's avatar Iskander Sharipov Committed by Ian Lance Taylor

test: extend noescape bytes.Buffer test suite

Added some more cases that should be guarded against regression.

Change-Id: I9f1dda2fd0be9b6e167ef1cc018fc8cce55c066c
Reviewed-on: https://go-review.googlesource.com/134017
Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
parent 7a0eb564
......@@ -37,3 +37,20 @@ func bufferNoEscape3(xs []string) string { // ERROR "xs does not escape"
}
return b.String() // ERROR "inlining call" "string\(bytes.b.buf\[bytes\.b\.off:\]\) escapes to heap"
}
func bufferNoEscape4() []byte {
var b bytes.Buffer
b.Grow(64) // ERROR "b does not escape"
useBuffer(&b) // ERROR "&b does not escape"
return b.Bytes() // ERROR "inlining call" "b does not escape"
}
func bufferNoEscape5() {
b := bytes.NewBuffer(make([]byte, 0, 128)) // ERROR "inlining call" "make\(\[\]byte, 0, 128\) does not escape" "&bytes.Buffer literal does not escape"
useBuffer(b)
}
//go:noinline
func useBuffer(b *bytes.Buffer) { // ERROR "b does not escape"
b.WriteString("1234")
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment