diff options
Diffstat (limited to 'test/codegen/append.go')
| -rw-r--r-- | test/codegen/append.go | 91 |
1 files changed, 57 insertions, 34 deletions
diff --git a/test/codegen/append.go b/test/codegen/append.go index e90fa87ed2..d232f0b170 100644 --- a/test/codegen/append.go +++ b/test/codegen/append.go @@ -1,5 +1,7 @@ // asmcheck +//go:build !goexperiment.runtimefreegc + // Copyright 2025 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. @@ -9,114 +11,135 @@ package codegen func Append1(n int) []int { var r []int for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return r } func Append2(n int) (r []int) { for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return } func Append3(n int) (r []int) { for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return r } func Append4(n int) []int { var r []int for i := range n { - // amd64:`.*growsliceBuf` + // amd64:`.*growsliceBuf\b` r = append(r, i) } println(cap(r)) - // amd64:`.*moveSliceNoScan` + // amd64:`.*moveSliceNoScan\b` return r } func Append5(n int) []int { var r []int for i := range n { - // amd64:`.*growsliceBuf` + // amd64:`.*growsliceBuf\b` r = append(r, i) } useSlice(r) - // amd64:`.*moveSliceNoScan` + // amd64:`.*moveSliceNoScan\b` + return r +} + +func Append5b(n int) []int { + var r []int + useSlice(r) + for i := range n { + // amd64:`.*growsliceBuf\b` + r = append(r, i) + } + // amd64:`.*moveSliceNoScan\b` return r } func Append6(n int) []*int { var r []*int for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, new(i)) } - // amd64:`.*moveSliceNoCap` + // amd64:`.*moveSliceNoCap\b` return r } func Append7(n int) []*int { var r []*int for i := range n { - // amd64:`.*growsliceBuf` + // amd64:`.*growsliceBuf\b` r = append(r, new(i)) } println(cap(r)) - // amd64:`.*moveSlice` + // amd64:`.*moveSlice\b` return r } func Append8(n int, p *[]int) { var r []int for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` *p = r } +func Append8b(n int, p *[]int) { + var r []int + // amd64:`.*moveSliceNoCapNoScan\b` + *p = r + for i := range n { + // amd64:`.*growslice\b` + r = append(r, i) + } +} + func Append9(n int) []int { var r []int for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } println(len(r)) - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return r } func Append10(n int) []int { var r []int for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } println(r[3]) - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return r } func Append11(n int) []int { var r []int for i := range n { - // amd64:`.*growsliceBuf` + // amd64:`.*growsliceBuf\b` r = append(r, i) } r = r[3:5] - // amd64:`.*moveSliceNoScan` + // amd64:`.*moveSliceNoScan\b` return r } @@ -124,10 +147,10 @@ func Append12(n int) []int { var r []int r = nil for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return r } @@ -135,10 +158,10 @@ func Append13(n int) []int { var r []int r, r = nil, nil for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return r } @@ -146,42 +169,42 @@ func Append14(n int) []int { var r []int r = []int{3, 4, 5} for i := range n { - // amd64:`.*growsliceBuf` + // amd64:`.*growsliceBuf\b` r = append(r, i) } - // amd64:`.*moveSliceNoScan` + // amd64:`.*moveSliceNoScan\b` return r } func Append15(n int) []int { r := []int{3, 4, 5} for i := range n { - // amd64:`.*growsliceBuf` + // amd64:`.*growsliceBuf\b` r = append(r, i) } - // amd64:`.*moveSliceNoScan` + // amd64:`.*moveSliceNoScan\b` return r } func Append16(r []int, n int) []int { for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return r } func Append17(n int) []int { var r []int for i := range n { - // amd64:`.*growslice` + // amd64:`.*growslice\b` r = append(r, i) } for i, x := range r { println(i, x) } - // amd64:`.*moveSliceNoCapNoScan` + // amd64:`.*moveSliceNoCapNoScan\b` return r } |
