1
0
mirror of https://github.com/golang/go synced 2024-11-24 06:30:22 -07:00

cmd/internal/obj: drop Filesym from DwarfAbstractFunc

PutAbstractFunc doesn't use FnState.Filesym, so it isn't needed, but
more importantly it is misleading. DwarfAbstractFunc is frequently used
on inlined functions from outside the current compilation unit. For
those function, ctxt.fileSymbol returns nil, meaning it probably isn't
safe to use if the original compilation unit could also generate an
abstract func with the correct file symbol.

Change-Id: I0e6c76e41d75ac9ca07e0f775e49d791249e1c5d
Reviewed-on: https://go-review.googlesource.com/c/go/+/458198
Reviewed-by: Than McIntosh <thanm@google.com>
Auto-Submit: Michael Pratt <mpratt@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
This commit is contained in:
Michael Pratt 2022-12-16 13:43:16 -05:00 committed by Gopher Robot
parent 8c347a093c
commit a34cec8e41

View File

@ -433,15 +433,10 @@ func (ctxt *Link) DwarfAbstractFunc(curfn interface{}, s *LSym, myimportpath str
scopes, _, startPos := ctxt.DebugInfo(s, absfn, curfn)
_, startLine := ctxt.getFileSymbolAndLine(startPos)
dwctxt := dwCtxt{ctxt}
// TODO(prattmic): this returns nil for symbols outside of the current
// package because s.Func() is empty. This doesn't matter because
// PutAbstractFunc doesn't use Filesym. Use startPos or remove.
filesym := ctxt.fileSymbol(s)
fnstate := dwarf.FnState{
Name: s.Name,
Importpath: myimportpath,
Info: absfn,
Filesym: filesym,
Absfn: absfn,
StartLine: startLine,
External: !s.Static(),