From: HÃ¥vard Haugen Date: Mon, 7 Sep 2015 20:19:30 +0000 (+0200) Subject: cmd/compile/internal/gc: unexport and make Hasdefer a bool X-Git-Tag: go1.6beta1~1156 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=259466452dfb5ab84cfb3d0425b5137406e564ed;p=gostls13.git cmd/compile/internal/gc: unexport and make Hasdefer a bool Passes go build -a -toolexec 'toolstash -cmp' std cmd. Change-Id: I804ee4252fa9be78cb277faf7f467e6c9cfdd4a6 Reviewed-on: https://go-review.googlesource.com/14319 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/compile/internal/gc/cgen.go b/src/cmd/compile/internal/gc/cgen.go index 860db34f48..951f84fca7 100644 --- a/src/cmd/compile/internal/gc/cgen.go +++ b/src/cmd/compile/internal/gc/cgen.go @@ -2399,7 +2399,7 @@ func Ginscall(f *Node, proc int) { if proc == 1 { Ginscall(Newproc, 0) } else { - if Hasdefer == 0 { + if !hasdefer { Fatalf("hasdefer=0 but has defer") } Ginscall(Deferproc, 0) @@ -2622,7 +2622,7 @@ func cgen_ret(n *Node) { if n != nil { Genlist(n.List) // copy out args } - if Hasdefer != 0 { + if hasdefer { Ginscall(Deferreturn, 0) } Genlist(Curfn.Func.Exit) diff --git a/src/cmd/compile/internal/gc/go.go b/src/cmd/compile/internal/gc/go.go index a6b1ef55ab..3e7d6aa80e 100644 --- a/src/cmd/compile/internal/gc/go.go +++ b/src/cmd/compile/internal/gc/go.go @@ -616,7 +616,7 @@ var blockgen int32 // max block number var block int32 // current block number -var Hasdefer int // flag that curfn has defer statetment +var hasdefer bool // flag that curfn has defer statement var Curfn *Node diff --git a/src/cmd/compile/internal/gc/pgen.go b/src/cmd/compile/internal/gc/pgen.go index f98d72b88c..5631d4e5ec 100644 --- a/src/cmd/compile/internal/gc/pgen.go +++ b/src/cmd/compile/internal/gc/pgen.go @@ -392,7 +392,7 @@ func compile(fn *Node) { goto ret } - Hasdefer = 0 + hasdefer = false walk(Curfn) if nerrors != 0 { goto ret @@ -487,7 +487,7 @@ func compile(fn *Node) { // TODO: Determine when the final cgen_ret can be omitted. Perhaps always? cgen_ret(nil) - if Hasdefer != 0 { + if hasdefer { // deferreturn pretends to have one uintptr argument. // Reserve space for it so stack scanner is happy. if Maxarg < int64(Widthptr) { diff --git a/src/cmd/compile/internal/gc/reg.go b/src/cmd/compile/internal/gc/reg.go index c061df1fd4..388d713171 100644 --- a/src/cmd/compile/internal/gc/reg.go +++ b/src/cmd/compile/internal/gc/reg.go @@ -486,7 +486,7 @@ func mkvar(f *Flow, a *obj.Addr) Bits { // // Disable registerization for results if using defer, because the deferred func // might recover and return, causing the current values to be used. - if node.Class == PEXTERN || (Hasdefer != 0 && node.Class == PPARAMOUT) { + if node.Class == PEXTERN || (hasdefer && node.Class == PPARAMOUT) { v.addr = 1 } diff --git a/src/cmd/compile/internal/gc/walk.go b/src/cmd/compile/internal/gc/walk.go index 38e22fc6cd..4a79b6609e 100644 --- a/src/cmd/compile/internal/gc/walk.go +++ b/src/cmd/compile/internal/gc/walk.go @@ -231,7 +231,7 @@ func walkstmt(np **Node) { walkstmt(&n.Right) case ODEFER: - Hasdefer = 1 + hasdefer = true switch n.Left.Op { case OPRINT, OPRINTN: walkprintfunc(&n.Left, &n.Ninit)