Initial commit: Go 1.23 release state
This commit is contained in:
41
test/codegen/issue52635.go
Normal file
41
test/codegen/issue52635.go
Normal file
@@ -0,0 +1,41 @@
|
||||
// asmcheck
|
||||
|
||||
// Copyright 2022 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 that optimized range memclr works with pointers to arrays.
|
||||
// The clears get inlined, see https://github.com/golang/go/issues/56997
|
||||
|
||||
package codegen
|
||||
|
||||
type T struct {
|
||||
a *[10]int
|
||||
b [10]int
|
||||
}
|
||||
|
||||
func (t *T) f() {
|
||||
// amd64:-".*runtime.memclrNoHeapPointers"
|
||||
// amd64:"DUFFZERO"
|
||||
for i := range t.a {
|
||||
t.a[i] = 0
|
||||
}
|
||||
|
||||
// amd64:-".*runtime.memclrNoHeapPointers"
|
||||
// amd64:"DUFFZERO"
|
||||
for i := range *t.a {
|
||||
t.a[i] = 0
|
||||
}
|
||||
|
||||
// amd64:-".*runtime.memclrNoHeapPointers"
|
||||
// amd64:"DUFFZERO"
|
||||
for i := range t.a {
|
||||
(*t.a)[i] = 0
|
||||
}
|
||||
|
||||
// amd64:-".*runtime.memclrNoHeapPointers"
|
||||
// amd64:"DUFFZERO"
|
||||
for i := range *t.a {
|
||||
(*t.a)[i] = 0
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user