From 6dd20f4f12771ce98a55f9735b05417465d0d31f Mon Sep 17 00:00:00 2001 From: David Chase Date: Mon, 30 Jan 2023 23:54:13 -0500 Subject: [PATCH] cmd/compile: preserve full inlined location for ir.Name locals This was noticed while testing hash-search debugging of the loopvar experiment. The change is incomplete -- it only addresses local variables, not parameters. The code to log/search changes in loop variable semantics depends on this, so that will be the test. Change-Id: I0f84ab7696c6cab43486242cacaba6a0bfc45475 Reviewed-on: https://go-review.googlesource.com/c/go/+/464315 Reviewed-by: Matthew Dempsky TryBot-Result: Gopher Robot Run-TryBot: David Chase --- src/cmd/compile/internal/noder/reader.go | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go index d2d9d5a550..7a8350b1fb 100644 --- a/src/cmd/compile/internal/noder/reader.go +++ b/src/cmd/compile/internal/noder/reader.go @@ -1566,13 +1566,6 @@ func (r *reader) addLocal(name *ir.Name, ctxt ir.Class) { name.SetInlFormal(true) ctxt = ir.PAUTO } - - // TODO(mdempsky): Rethink this hack. - if strings.HasPrefix(name.Sym().Name, "~") || base.Flag.GenDwarfInl == 0 { - name.SetPos(r.inlCall.Pos()) - name.SetInlFormal(false) - name.SetInlLocal(false) - } } name.Class = ctxt @@ -3549,15 +3542,9 @@ func unifiedInlineCall(call *ir.CallExpr, fn *ir.Func, inlIndex int) *ir.Inlined name.Curfn = callerfn callerfn.Dcl = append(callerfn.Dcl, name) - // Quirkish. TODO(mdempsky): Document why. if name.AutoTemp() { name.SetEsc(ir.EscUnknown) - - if base.Flag.GenDwarfInl != 0 { - name.SetInlLocal(true) - } else { - name.SetPos(r.inlCall.Pos()) - } + name.SetInlLocal(true) } } }