...
Run Format

Source file test/fixedbugs/issue19137.go

Documentation: test/fixedbugs

  // compile
  
  // Copyright 2017 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.
  
  // Issue 19137: folding address into load/store causes
  // odd offset on ARM64.
  
  package p
  
  type T struct {
  	p *int
  	a [2]byte
  	b [6]byte // not 4-byte aligned
  }
  
  func f(b [6]byte) T {
  	var x [1000]int // a large stack frame
  	_ = x
  	return T{b: b}
  }
  
  // Arg symbol's base address may be not at an aligned offset to
  // SP. Folding arg's address into load/store may cause odd offset.
  func move(a, b [20]byte) [20]byte {
  	var x [1000]int // a large stack frame
  	_ = x
  	return b // b is not 8-byte aligned to SP
  }
  func zero() ([20]byte, [20]byte) {
  	var x [1000]int // a large stack frame
  	_ = x
  	return [20]byte{}, [20]byte{} // the second return value is not 8-byte aligned to SP
  }
  

View as plain text