]> Cypherpunks.ru repositories - gostls13.git/commit
cmd/compile: fix missing descend in Addrtaken for closures.
authorDan Scales <danscales@google.com>
Thu, 25 Feb 2021 20:13:23 +0000 (12:13 -0800)
committerDan Scales <danscales@google.com>
Fri, 26 Feb 2021 02:11:50 +0000 (02:11 +0000)
commit9a555fc24c318bf1b07bdc07d5c02e372681e401
treedd079c4e836413524928a567b1b7503dccd0e68b
parenta61524d1033632f733f69bf6635e767d70d95cdd
cmd/compile:  fix missing descend in Addrtaken for closures.

ComputeAddrtaken needs to descend into closures, now that imported
bodies can include closures. The bug was that we weren't properly
setting Addrtaken for a variable inside a closure inside a function that
we were importing.

For now, still disable inlining of functions with closures for -G mode.
I'll enable it in a later change -- there are just a few fixes related
to the fact that we don't need to set Ntype for closure functions.

Added a test derived from the cilium repro in the issue.

Fixes #44370

Change-Id: Ida2a403636bf8740b471b3ad68b5474951811e19
Reviewed-on: https://go-review.googlesource.com/c/go/+/296649
Run-TryBot: Dan Scales <danscales@google.com>
Trust: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/base/flag.go
src/cmd/compile/internal/inline/inl.go
src/cmd/compile/internal/typecheck/subr.go
test/fixedbugs/issue44370.dir/a.go [new file with mode: 0644]
test/fixedbugs/issue44370.dir/b.go [new file with mode: 0644]
test/fixedbugs/issue44370.go [new file with mode: 0644]