This has been investigated and explained on the issue tracker.
Fixes #54402.
Change-Id: I4d8b971faa810591983ad028b7db16411f3b3b4a
Reviewed-on: https://go-review.googlesource.com/c/go/+/461456
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
s [2]string
}
-func f(a T) { // ERROR "live at entry to f: a"
+func f(a T) { // ERROR "live at entry to f: a$"
var e interface{} // ERROR "stack object e interface \{\}$"
- // TODO(go.dev/issue/54402): Investigate why "live at entry to
- // f.func1" is sensitive to regabi.
- func() { // ERROR "live at entry to f.func1: (a &e|&e a)"
- e = a.s // ERROR "live at call to convT: &e" "stack object a T$"
+ func() { // ERROR "live at entry to f.func1: &e a$"
+ e = a.s // ERROR "live at call to convT: &e$" "stack object a T$"
}()
// Before the fix, both a and e were live at the previous line.
_ = e