aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/obj/dwarf.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/internal/obj/dwarf.go')
-rw-r--r--src/cmd/internal/obj/dwarf.go20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/cmd/internal/obj/dwarf.go b/src/cmd/internal/obj/dwarf.go
index 482222bb74..825f0133f1 100644
--- a/src/cmd/internal/obj/dwarf.go
+++ b/src/cmd/internal/obj/dwarf.go
@@ -345,7 +345,7 @@ func (ctxt *Link) fileSymbol(fn *LSym) *LSym {
// populateDWARF fills in the DWARF Debugging Information Entries for
// TEXT symbol 's'. The various DWARF symbols must already have been
// initialized in InitTextSym.
-func (ctxt *Link) populateDWARF(curfn interface{}, s *LSym) {
+func (ctxt *Link) populateDWARF(curfn Func, s *LSym) {
myimportpath := ctxt.Pkgpath
if myimportpath == "" {
return
@@ -358,9 +358,7 @@ func (ctxt *Link) populateDWARF(curfn interface{}, s *LSym) {
var scopes []dwarf.Scope
var inlcalls dwarf.InlCalls
if ctxt.DebugInfo != nil {
- // Don't need startPos because s.Func().StartLine is populated,
- // as s is in this package.
- scopes, inlcalls, _ = ctxt.DebugInfo(s, info, curfn)
+ scopes, inlcalls = ctxt.DebugInfo(s, info, curfn)
}
var err error
dwctxt := dwCtxt{ctxt}
@@ -427,7 +425,7 @@ func (ctxt *Link) DwarfGlobal(typename string, varSym *LSym) {
dwarf.PutGlobal(dwCtxt{ctxt}, dieSym, typeSym, varSym, varname)
}
-func (ctxt *Link) DwarfAbstractFunc(curfn interface{}, s *LSym) {
+func (ctxt *Link) DwarfAbstractFunc(curfn Func, s *LSym) {
absfn := ctxt.DwFixups.AbsFuncDwarfSym(s)
if absfn.Size != 0 {
ctxt.Diag("internal error: DwarfAbstractFunc double process %v", s)
@@ -435,8 +433,8 @@ func (ctxt *Link) DwarfAbstractFunc(curfn interface{}, s *LSym) {
if s.Func() == nil {
s.NewFuncInfo()
}
- scopes, _, startPos := ctxt.DebugInfo(s, absfn, curfn)
- _, startLine := ctxt.getFileSymbolAndLine(startPos)
+ scopes, _ := ctxt.DebugInfo(s, absfn, curfn)
+ _, startLine := ctxt.getFileSymbolAndLine(curfn.Pos())
dwctxt := dwCtxt{ctxt}
fnstate := dwarf.FnState{
Name: s.Name,
@@ -515,8 +513,8 @@ type relFixup struct {
}
type fnState struct {
- // precursor function (really *gc.Node)
- precursor interface{}
+ // precursor function
+ precursor Func
// abstract function symbol
absfn *LSym
}
@@ -529,14 +527,14 @@ func NewDwarfFixupTable(ctxt *Link) *DwarfFixupTable {
}
}
-func (ft *DwarfFixupTable) GetPrecursorFunc(s *LSym) interface{} {
+func (ft *DwarfFixupTable) GetPrecursorFunc(s *LSym) Func {
if fnstate, found := ft.precursor[s]; found {
return fnstate.precursor
}
return nil
}
-func (ft *DwarfFixupTable) SetPrecursorFunc(s *LSym, fn interface{}) {
+func (ft *DwarfFixupTable) SetPrecursorFunc(s *LSym, fn Func) {
if _, found := ft.precursor[s]; found {
ft.ctxt.Diag("internal error: DwarfFixupTable.SetPrecursorFunc double call on %v", s)
}