Commit a73a330c authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

cmd/compile: count init functions from 0, not 1

While we're here, do minor style cleanup.
Also, since we know exactly how many init
functions there are, use that knowledge.

This is cleanup prior to a more substantive CL.

Change-Id: I2bba60b3c051c852590f798f45e8268f8bc54ca8
Reviewed-on: https://go-review.googlesource.com/41499
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 79e5ef29
...@@ -6,17 +6,16 @@ package gc ...@@ -6,17 +6,16 @@ package gc
import "cmd/compile/internal/types" import "cmd/compile/internal/types"
// a function named init is a special case. // A function named init is a special case.
// it is called by the initialization before // It is called by the initialization before main is run.
// main is run. to make it unique within a // To make it unique within a package and also uncallable,
// package and also uncallable, the name, // the name, normally "pkg.init", is altered to "pkg.init.0".
// normally "pkg.init", is altered to "pkg.init.1". var renameinitgen int
var renameinit_initgen int
func renameinit() *types.Sym { func renameinit() *types.Sym {
renameinit_initgen++ s := lookupN("init.", renameinitgen)
return lookupN("init.", renameinit_initgen) renameinitgen++
return s
} }
// anyinit reports whether there any interesting init statements. // anyinit reports whether there any interesting init statements.
...@@ -39,7 +38,7 @@ func anyinit(n []*Node) bool { ...@@ -39,7 +38,7 @@ func anyinit(n []*Node) bool {
} }
// is there an explicit init function // is there an explicit init function
if s := lookup("init.1"); s.Def != nil { if renameinitgen > 0 {
return true return true
} }
...@@ -126,11 +125,8 @@ func fninit(n []*Node) { ...@@ -126,11 +125,8 @@ func fninit(n []*Node) {
// (8) // (8)
// could check that it is fn of no args/returns // could check that it is fn of no args/returns
for i := 1; ; i++ { for i := 0; i < renameinitgen; i++ {
s := lookupN("init.", i) s := lookupN("init.", i)
if s.Def == nil {
break
}
a = nod(OCALL, asNode(s.Def), nil) a = nod(OCALL, asNode(s.Def), nil)
r = append(r, a) r = append(r, a)
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment