From c7a11099c977b6e09c82ceaed014a4a55da568eb Mon Sep 17 00:00:00 2001 From: Cherry Zhang Date: Fri, 24 Apr 2020 15:19:55 -0400 Subject: [PATCH] [dev.link] cmd/link: fix buglet in new GCProg generation code It should check the name of the symbol being added, not the GC data symbol we're generating. Change-Id: I123679778ee542b8d1f5c15bf090fa3578025c19 Reviewed-on: https://go-review.googlesource.com/c/go/+/230018 Run-TryBot: Cherry Zhang Reviewed-by: Than McIntosh TryBot-Result: Gobot Gobot --- src/cmd/link/internal/ld/data.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go index d5286b4289..2022c43bff 100644 --- a/src/cmd/link/internal/ld/data.go +++ b/src/cmd/link/internal/ld/data.go @@ -1084,14 +1084,14 @@ func (p *GCProg2) AddSym(s loader.Sym) { // Things without pointers should be in sym.SNOPTRDATA or sym.SNOPTRBSS; // everything we see should have pointers and should therefore have a type. if typ == 0 { - switch p.sym.Name() { + switch ldr.SymName(s) { case "runtime.data", "runtime.edata", "runtime.bss", "runtime.ebss": // Ignore special symbols that are sometimes laid out // as real symbols. See comment about dyld on darwin in // the address function. return } - p.ctxt.Errorf(p.sym.Sym(), "missing Go type information for global symbol: size %d", ldr.SymSize(s)) + p.ctxt.Errorf(p.sym.Sym(), "missing Go type information for global symbol %s: size %d", ldr.SymName(s), ldr.SymSize(s)) return } -- 2.50.0