golang/go
Vedi su GitHubcmd/compile: unnecessary bounds check when slicing after using `slices.Grow`
Open
#73.145 aperta il 3 apr 2025
BugReportNeedsInvestigationPerformancecompiler/runtimehelp wanted
Metriche repository
- Star
- (133.883 star)
- Metriche merge PR
- (Nessuna PR mergiata in 30 g)
Descrizione
Go version
go version go1.24.1 linux/amd64
Output of go env in your module/workspace:
-
What did you do?
package pkg
import "slices"
func Foo() {
var xs []int
xs = slices.Grow(xs, 4)[:len(xs)+4]
}
What did you see happen?
Slicing after growing inserts a check for the capacity and a conditional call to runtime.panicSliceAcap
What did you expect to see?
The compiler should be able to tell that we just guaranteed that the slice's capacity is at least len(xs)+4 and shouldn't insert another check.