mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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 <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: David Chase <drchase@google.com>
This commit is contained in:
parent
ab86d29bb5
commit
6dd20f4f12
1 changed files with 1 additions and 14 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue