mirror of
https://github.com/golang/go.git
synced 2025-05-23 00:11:26 +00:00
The rules for folding addresses into load/stores checks sym1 is not on stack (because the stack offset is not known at that point). But sym1 could be nil, which invalidates the check. Check merged sym instead. Fixes #19137. Change-Id: I8574da22ced1216bb5850403d8f08ec60a8d1005 Reviewed-on: https://go-review.googlesource.com/37145 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
23 lines
421 B
Go
23 lines
421 B
Go
// 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}
|
|
}
|