aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/link/internal')
-rw-r--r--src/cmd/link/internal/ld/deadcode.go6
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)