aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/loader
diff options
context:
space:
mode:
authorThan McIntosh <thanm@google.com>2019-12-26 13:39:04 -0500
committerThan McIntosh <thanm@google.com>2019-12-27 15:05:16 +0000
commitc6fea80b9582d7c4f86bf88b404ac6ebb33359fd (patch)
treee5b2a7be2e21a995dca7e4dce7e3d03d6f24bcbe /src/cmd/link/internal/loader
parent9a5468edff1b0f8e3b6be02ed59b238679cf5c2f (diff)
downloadgo-c6fea80b9582d7c4f86bf88b404ac6ebb33359fd.tar.xz
[dev.link] cmd/link: add SymVersion loader method
Add a loader method to retrieve the version from a loader.Sym (useful mainly for debugging at the moment). Change-Id: I82e0e316bb86eb41b9cf366e656a0f848cf3424e Reviewed-on: https://go-review.googlesource.com/c/go/+/212617 Reviewed-by: Jeremy Faller <jeremy@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/link/internal/loader')
-rw-r--r--src/cmd/link/internal/loader/loader.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
index f774c0c8dd..029e10feda 100644
--- a/src/cmd/link/internal/loader/loader.go
+++ b/src/cmd/link/internal/loader/loader.go
@@ -607,6 +607,21 @@ func (l *Loader) SymName(i Sym) string {
return strings.Replace(osym.Name, "\"\".", r.pkgprefix, -1)
}
+// Returns the version of the i-th symbol.
+func (l *Loader) SymVersion(i Sym) int {
+ if l.IsExternal(i) {
+ if s := l.Syms[i]; s != nil {
+ return int(s.Version)
+ }
+ pp := l.getPayload(i)
+ return pp.ver
+ }
+ r, li := l.toLocal(i)
+ osym := goobj2.Sym{}
+ osym.Read(r.Reader, r.SymOff(li))
+ return int(abiToVer(osym.ABI, r.version))
+}
+
// Returns the type of the i-th symbol.
func (l *Loader) SymType(i Sym) sym.SymKind {
if l.IsExternal(i) {