Commit 49a533e2 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

cmd/compile: use autogenerated position for init functions

This eliminates an old TODO,
and stabilizes the position information
for init functions.

Change-Id: Idf2d9a16a60e097ee08f42541b87e170da2f9d3a
Reviewed-on: https://go-review.googlesource.com/38388
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
parent 346d5883
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
package gc package gc
import "cmd/internal/src"
// 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. to make it unique within a // main is run. to make it unique within a
...@@ -75,9 +77,7 @@ func anyinit(n []*Node) bool { ...@@ -75,9 +77,7 @@ func anyinit(n []*Node) bool {
} }
func fninit(n []*Node) { func fninit(n []*Node) {
// This code is using the last value of lineno for position information lineno = makePos(src.NewFileBase("<autogenerated>", "<autogenerated>"), 1, 0)
// (see comment in noder.go, noder.file method, for details).
nf := initfix(n) nf := initfix(n)
if !anyinit(nf) { if !anyinit(nf) {
return return
......
...@@ -101,18 +101,7 @@ func (p *noder) node() { ...@@ -101,18 +101,7 @@ func (p *noder) node() {
} }
pragcgobuf += p.pragcgobuf pragcgobuf += p.pragcgobuf
lineno = src.NoXPos
// For compatibility with old code only (comparisons w/ toolstash):
// The old line number tracking simply continued incrementing the
// virtual line number (lexlineno) and using it also for lineno.
// After processing the last function, the lineno was used for the
// line number information of the initialization code (fninit).
// It would be better to use an explicit "<autogenerated>" filename
// for fninit and set lineno to NoPos here.
// TODO(gri) fix this once we switched permanently to the new
// position information.
lineno = makePos(p.file.Pos().Base(), uint(p.file.Lines), 0)
clearImports() clearImports()
} }
......
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