Commit c374984e authored by Yury Smolsky's avatar Yury Smolsky Committed by Josh Bleecher Snyder

cmd/compile: export the Func.Endlineno field

This CL exports the Func.Endlineno value for inlineable functions.
It is needed to grab the source code of an imported function
inlined into the function specified in $GOSSAFUNC.

See CL 126606 for details.

Updates #25904

Change-Id: I1e259e20445e4109b4621a95abb5bde1be457af1
Reviewed-on: https://go-review.googlesource.com/126605
Run-TryBot: Yury Smolsky <yury@smolsky.by>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarKeith Randall <khr@golang.org>
parent c35069d6
......@@ -952,6 +952,16 @@ func (w *exportWriter) funcExt(n *Node) {
if n.Func.ExportInline() {
w.p.doInline(n)
}
// Endlineno for inlined function.
if n.Name.Defn != nil {
w.pos(n.Name.Defn.Func.Endlineno)
} else {
// When the exported node was defined externally,
// e.g. io exports atomic.(*Value).Load or bytes exports errors.New.
// Keep it as we don't distinguish this case in iimport.go.
w.pos(n.Func.Endlineno)
}
} else {
w.uint64(0)
}
......
......@@ -679,6 +679,7 @@ func (r *importReader) funcExt(n *Node) {
n.Func.Inl = &Inline{
Cost: int32(u - 1),
}
n.Func.Endlineno = r.pos()
}
}
......
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