]> Cypherpunks.ru repositories - gostls13.git/commit
[dev.unified] cmd/compile: fix missing method value wrapper in unified IR
authorCuong Manh Le <cuong.manhle.vn@gmail.com>
Mon, 23 May 2022 17:41:13 +0000 (00:41 +0700)
committerCuong Manh Le <cuong.manhle.vn@gmail.com>
Mon, 6 Jun 2022 19:20:41 +0000 (19:20 +0000)
commita8780f94c3eb19dda8aaa15ad83468b2d54a0e5a
tree8201280586fb3437583d2c7ec50b6b50b99b7ded
parent3a1f1e15757e4c2fd310e3659eefff577d87717b
[dev.unified] cmd/compile: fix missing method value wrapper in unified IR

Unified IR uses to generate wrappers after the global inlining pass, so
it needs to apply inlining for the wrappers itself. However, inlining
may reveal new method value nodes which have not been seen yet, thus
unified IR never generates wrappers for them.

To fix it, just visiting the wrapper function body once more time after
inlining, and generate wrappers for any new method value nodes.

Fixes #52128

Change-Id: I78631c4faa0b00357d4f84704d3525fd38a52cd7
Reviewed-on: https://go-review.googlesource.com/c/go/+/410344
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/cmd/compile/internal/noder/reader.go
test/fixedbugs/issue52128.dir/a.go [new file with mode: 0644]
test/fixedbugs/issue52128.dir/b.go [new file with mode: 0644]
test/fixedbugs/issue52128.dir/p.go [new file with mode: 0644]
test/fixedbugs/issue52128.go [new file with mode: 0644]