blob: 70c088abc412f1430010d788fb6e2b5528ba0333 [file]
// run
// Copyright 2026 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 main
//go:noinline
func f(c bool) int {
var x, y int
p := &x
if c {
p = &y
}
*p = 1
return x
}
//go:noinline
func g(c bool) int {
var x, y int
p := &y
if c {
p = &x
}
*p = 1
return x
}
func main() {
if got := f(false); got != 1 {
panic(got)
}
if got := f(true); got != 0 {
panic(got)
}
if got := g(false); got != 0 {
panic(got)
}
if got := g(true); got != 1 {
panic(got)
}
}