]> Cypherpunks repositories - gostls13.git/commit
[dev.regabi] cmd/compile: stop using Vargen for import/export
authorMatthew Dempsky <mdempsky@google.com>
Mon, 11 Jan 2021 23:07:09 +0000 (15:07 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Tue, 12 Jan 2021 03:15:18 +0000 (03:15 +0000)
commit12ee55ba7bf22157267e735e8e4bbf651c5b4e7d
treea024598854c7bc9f41d4e7497c2c07cb52a9c4cf
parentb4d2a0445b0ca54a159e0895e1a8b31d47411894
[dev.regabi] cmd/compile: stop using Vargen for import/export

Historically, inline function bodies were exported as plain Go source
code, and symbol mangling was a convenient hack because it allowed
variables to be re-imported with largely the same names as they were
originally exported as.

However, nowadays we use a binary format that's more easily extended,
so we can simply serialize all of a function's declared objects up
front, and then refer to them by index later on. This also allows us
to easily report unmangled names all the time (e.g., error message
from issue7921.go).

Fixes #43633.

Change-Id: I46c88f5a47cb921f70ab140976ba9ddce38df216
Reviewed-on: https://go-review.googlesource.com/c/go/+/283193
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
Trust: Dan Scales <danscales@google.com>
Trust: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/ir/func.go
src/cmd/compile/internal/ir/name.go
src/cmd/compile/internal/typecheck/dcl.go
src/cmd/compile/internal/typecheck/iexport.go
src/cmd/compile/internal/typecheck/iimport.go
src/cmd/compile/internal/typecheck/typecheck.go
test/fixedbugs/issue43633.dir/a.go [new file with mode: 0644]
test/fixedbugs/issue43633.dir/main.go [new file with mode: 0644]
test/fixedbugs/issue43633.go [new file with mode: 0644]
test/fixedbugs/issue7921.go