This is the last failed test in Unified IR, since it can inline f5 and
f6 but the old frontend can not. So marking them as //go:noinline, with
a TODO for re-enable once GOEXPERIMENT=nounified is gone.
Fixes #53058
Change-Id: Ifbbc49c87997a53e1b323048f0067f0257655fad
Reviewed-on: https://go-review.googlesource.com/c/go/+/437217
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
func f3() { panic(1) } // ERROR "can inline f3" "1 escapes to heap"
func f4() { recover() }
+// TODO(cuonglm): remove f5, f6 //go:noinline and update the error message
+// once GOEXPERIMENT=nounified is gone.
+
+//go:noinline
func f5() *byte {
type T struct {
x [1]byte
return &t.x[0]
}
+//go:noinline
func f6() *byte {
type T struct {
x struct {
failureSets = append(failureSets, types2Failures32Bit)
}
- if unifiedEnabled {
- failureSets = append(failureSets, unifiedFailures)
- } else {
+ if !unifiedEnabled {
failureSets = append(failureSets, go118Failures)
}
"fixedbugs/issue7525.go", // types2 reports init cycle error on different line - ok otherwise
)
-var unifiedFailures = setOf(
- "escape4.go", // unified IR can inline f5 and f6; test doesn't expect this
-)
-
func setOf(keys ...string) map[string]bool {
m := make(map[string]bool, len(keys))
for _, key := range keys {