]> Cypherpunks repositories - gostls13.git/commit
cmd/compile/internal/noder: set ir.Name.DictIndex for unified IR
authorMatthew Dempsky <mdempsky@google.com>
Thu, 18 Aug 2022 10:53:58 +0000 (03:53 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Thu, 18 Aug 2022 17:26:17 +0000 (17:26 +0000)
commit07cf24bdfe55dd3493e580c67b5437a114df7658
tree2f419f1ce5b784763cf16b072369fec53c238b52
parentb23d469e854f36e5ba8c0de9b7406a81e82d15c1
cmd/compile/internal/noder: set ir.Name.DictIndex for unified IR

For local variables of derived type, Delve relies on ir.Name.DictIndex
being set to the type's rtype index within the function's dictionary.
This CL implements that functionality within unified IR.

Manually double checked that Delve behaves correctly, at least as far
as I can tell from casual use. Specifically, I confirmed that running
the test program from TestDictIndex, stepping into testfn, and then
running `print mapvar` prints `map[int]main.CustomInt []`, which
matches the behavior under GOEXPERIMENT=nounified. (Also compare that
when ir.Name.DictIndex is *not* set by unified IR, `print mapvar`
instead prints `map[int]go.shape.int []`.)

Fixes #54514.

Change-Id: I90d443945895abfba04dc018f15e00217930091c
Reviewed-on: https://go-review.googlesource.com/c/go/+/424735
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
src/cmd/compile/internal/noder/reader.go
src/cmd/compile/internal/noder/writer.go
src/cmd/link/internal/ld/dwarf_test.go