diff options
Diffstat (limited to 'src/cmd')
| -rw-r--r-- | src/cmd/link/internal/ld/deadcode.go | 6 | ||||
| -rw-r--r-- | src/cmd/link/internal/ld/symtab.go | 3 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/cmd/link/internal/ld/deadcode.go b/src/cmd/link/internal/ld/deadcode.go index 7ecc5b1ec2..ac64813228 100644 --- a/src/cmd/link/internal/ld/deadcode.go +++ b/src/cmd/link/internal/ld/deadcode.go @@ -252,8 +252,10 @@ func (d *deadcodepass) init() { // We don't keep the go.plugin.exports symbol, // but we do keep the symbols it refers to. exports := d.ctxt.Syms.ROLookup("go.plugin.exports", 0) - for _, r := range exports.R { - d.mark(r.Sym, nil) + if exports != nil { + for _, r := range exports.R { + d.mark(r.Sym, nil) + } } } for _, name := range markextra { diff --git a/src/cmd/link/internal/ld/symtab.go b/src/cmd/link/internal/ld/symtab.go index ef96c04067..323136c6f9 100644 --- a/src/cmd/link/internal/ld/symtab.go +++ b/src/cmd/link/internal/ld/symtab.go @@ -588,8 +588,7 @@ func (ctxt *Link) symtab() { adduint(ctxt, moduledata, uint64(nitablinks)) adduint(ctxt, moduledata, uint64(nitablinks)) // The ptab slice - if Buildmode == BuildmodePlugin { - ptab := ctxt.Syms.ROLookup("go.plugin.tabs", 0) + if ptab := ctxt.Syms.ROLookup("go.plugin.tabs", 0); ptab != nil { ptab.Attr |= AttrReachable ptab.Attr |= AttrLocal ptab.Type = obj.SRODATA |
