cmd/compile: move Node.Curfn into both Node.Func and Node.Name

$ sizeof -p cmd/compile/internal/gc Node
Node 168
$

Change-Id: If624a2d72ec04ef30a1bc7ce76c0d61a526d8a37
Reviewed-on: https://go-review.googlesource.com/10532
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Russ Cox 2015-05-27 07:31:56 -04:00
parent 3c3019aa51
commit fd2154f906
11 changed files with 72 additions and 78 deletions

View file

@ -262,8 +262,8 @@ func capturevars(xfunc *Node) {
if Debug['m'] > 1 {
var name *Sym
if v.Curfn != nil && v.Curfn.Nname != nil {
name = v.Curfn.Nname.Sym
if v.Name.Curfn != nil && v.Name.Curfn.Nname != nil {
name = v.Name.Curfn.Nname.Sym
}
how := "ref"
if v.Name.Byval {
@ -398,7 +398,7 @@ func transformclosure(xfunc *Node) {
addr.Name.Param.Ntype = Nod(OIND, typenod(v.Type), nil)
addr.Class = PAUTO
addr.Used = true
addr.Curfn = xfunc
addr.Name.Curfn = xfunc
xfunc.Func.Dcl = list(xfunc.Func.Dcl, addr)
v.Name.Heapaddr = addr
if v.Name.Byval {
@ -602,7 +602,7 @@ func makepartialcall(fn *Node, t0 *Type, meth *Node) *Node {
ptr.Addable = true
ptr.Ullman = 1
ptr.Used = true
ptr.Curfn = xfunc
ptr.Name.Curfn = xfunc
xfunc.Func.Dcl = list(xfunc.Func.Dcl, ptr)
var body *NodeList
if Isptr[rcvrtype.Etype] || Isinter(rcvrtype) {