// compile | |
// 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 | |
//go:noinline | |
func g(d uintptr, a, m []int, s struct { | |
a, b, c, d, e int | |
}, u uint) { | |
_ = a | |
_ = m | |
_ = s | |
func() { | |
for i := 0; i < 5; i++ { | |
_ = a | |
_ = m | |
_, _ = s, s | |
} | |
}() | |
} | |
var One float64 = 1.0 | |
func f(d uintptr) { | |
var a, m []int | |
var s struct { | |
a, b, c, d, e int | |
} | |
g(d, a, m, s, uint(One)) // Uint of not-a-constant inserts a conditional, necessary to bug | |
defer func() uint { | |
return 0 | |
}() | |
} | |
var d uintptr | |
func h() { | |
f(d) | |
} |