diff options
Diffstat (limited to 'src/cmd/link/internal')
| -rw-r--r-- | src/cmd/link/internal/ld/deadcode.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/link/internal/ld/deadcode.go b/src/cmd/link/internal/ld/deadcode.go index 241cf603db..20609ed7bf 100644 --- a/src/cmd/link/internal/ld/deadcode.go +++ b/src/cmd/link/internal/ld/deadcode.go @@ -50,6 +50,12 @@ func (d *deadcodePass) init() { n := d.ldr.NDef() for i := 1; i < n; i++ { s := loader.Sym(i) + if d.ldr.SymType(s) == sym.STEXT && d.ldr.SymSize(s) == 0 { + // Zero-sized text symbol is a function deadcoded by the + // compiler. It doesn't really get compiled, and its + // metadata may be missing. + continue + } d.mark(s, 0) } d.mark(d.ctxt.mainInittasks, 0) |
