mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.link] cmd/link: convert typelink pass to new style
Change-Id: If861409a5cc4e398496199a89498a141f106f44f Reviewed-on: https://go-review.googlesource.com/c/go/+/227762 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
fd7666881b
commit
a35b322709
4 changed files with 39 additions and 18 deletions
|
|
@ -659,7 +659,9 @@ func (l *Loader) SymType(i Sym) sym.SymKind {
|
|||
// Returns the attributes of the i-th symbol.
|
||||
func (l *Loader) SymAttr(i Sym) uint8 {
|
||||
if l.IsExternal(i) {
|
||||
// TODO: do something? External symbols have different representation of attributes. For now, ReflectMethod is the only thing matters and it cannot be set by external symbol.
|
||||
// TODO: do something? External symbols have different representation of attributes.
|
||||
// For now, ReflectMethod, NoSplit, GoType, and Typelink are used and they cannot be
|
||||
// set by external symbol.
|
||||
return 0
|
||||
}
|
||||
r, li := l.toLocal(i)
|
||||
|
|
@ -982,6 +984,11 @@ func (l *Loader) IsGoType(i Sym) bool {
|
|||
return l.SymAttr(i)&goobj2.SymFlagGoType != 0
|
||||
}
|
||||
|
||||
// Returns whether this symbol should be included in typelink.
|
||||
func (l *Loader) IsTypelink(i Sym) bool {
|
||||
return l.SymAttr(i)&goobj2.SymFlagTypelink != 0
|
||||
}
|
||||
|
||||
// Returns whether this is a "go.itablink.*" symbol.
|
||||
func (l *Loader) IsItabLink(i Sym) bool {
|
||||
if _, ok := l.itablink[i]; ok {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue