// 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 } }