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: Keith Randall <khr@golang.org>
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)
}
n.Func.Inl = &Inline{
Cost: int32(u - 1),
}
+ n.Func.Endlineno = r.pos()
}
}