diff --git a/src/cmd/compile/internal/gc/closure.go b/src/cmd/compile/internal/gc/closure.go index 65f77d9079..24af94c0cd 100644 --- a/src/cmd/compile/internal/gc/closure.go +++ b/src/cmd/compile/internal/gc/closure.go @@ -199,7 +199,6 @@ func makeclosure(func_ *Node) *Node { xfunc.Func.Nname.Name.Funcdepth = func_.Func.Depth xfunc.Func.Depth = func_.Func.Depth xfunc.Func.Endlineno = func_.Func.Endlineno - makefuncsym(xfunc.Func.Nname.Sym) xfunc.Nbody = func_.Nbody xfunc.Func.Dcl = concat(func_.Func.Dcl, xfunc.Func.Dcl) diff --git a/src/cmd/compile/internal/gc/dcl.go b/src/cmd/compile/internal/gc/dcl.go index 0cb04eead6..cba8e21705 100644 --- a/src/cmd/compile/internal/gc/dcl.go +++ b/src/cmd/compile/internal/gc/dcl.go @@ -585,10 +585,6 @@ func funchdr(n *Node) { Fatal("funchdr: dclcontext") } - if importpkg == nil && n.Func.Nname != nil { - makefuncsym(n.Func.Nname.Sym) - } - dclcontext = PAUTO markdcl() Funcdepth++ @@ -1493,16 +1489,12 @@ func funcsym(s *Sym) *Sym { } s1 := Pkglookup(s.Name+"·f", s.Pkg) + if s1.Def == nil { + s1.Def = newfuncname(s1) + s1.Def.Func.Shortname = newname(s) + funcsyms = list(funcsyms, s1.Def) + } s.Fsym = s1 + return s1 } - -func makefuncsym(s *Sym) { - if isblanksym(s) { - return - } - s1 := funcsym(s) - s1.Def = newfuncname(s1) - s1.Def.Func.Shortname = newname(s) - funcsyms = list(funcsyms, s1.Def) -}