mirror of
https://github.com/golang/go
synced 2024-11-15 02:40:32 -07:00
6df3aac4ae
storeOneLoad decompose Load that is then stored, the offset value must be created on the same block with the Load to be dominated, otherwise, it's unsafe if one does not dominate the other. Fixes #48026 Change-Id: Iee5e6c5d3e1b09862afe4e65f7bcd771b4c57367 Reviewed-on: https://go-review.googlesource.com/c/go/+/345434 Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
27 lines
466 B
Go
27 lines
466 B
Go
// compile -d=ssa/check/on
|
|
|
|
// Copyright 2021 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.
|
|
|
|
package p
|
|
|
|
var i int
|
|
|
|
type t struct {
|
|
a, b, c, d, e int
|
|
}
|
|
|
|
func f(p t, q int) int {
|
|
var a, b, c, d, e, f, g int
|
|
var h, i, j, k, l, m int
|
|
_, _, _, _, _, _, _ = a, b, c, d, e, f, g
|
|
_, _, _, _, _, _ = h, i, j, k, l, m
|
|
return 0
|
|
}
|
|
|
|
func g() int {
|
|
var v t
|
|
return f(v, 1<<i)
|
|
}
|