if name != "" && (abbrev <= dwarf.DW_ABRV_VARIABLE || abbrev >= dwarf.DW_ABRV_NULLTYPE) {
if abbrev != dwarf.DW_ABRV_VARIABLE || version == 0 {
sym := ctxt.Syms.Lookup(dwarf.InfoPrefix+name, version)
- sym.Attr |= AttrHidden
+ sym.Attr |= AttrNotInSymbolTable
sym.Type = SDWARFINFO
die.Sym = sym
}
}
sym := ctxt.Syms.Lookup(dtolsym(def.Sym).Name+"..def", 0)
- sym.Attr |= AttrHidden
+ sym.Attr |= AttrNotInSymbolTable
sym.Type = SDWARFINFO
def.Sym = sym
epcs = s
dsym := ctxt.Syms.Lookup(dwarf.InfoPrefix+s.Name, int(s.Version))
- dsym.Attr |= AttrHidden | AttrReachable
+ dsym.Attr |= AttrNotInSymbolTable | AttrReachable
dsym.Type = SDWARFINFO
for _, r := range dsym.R {
if r.Type == objabi.R_DWARFREF && r.Sym.Size == 0 {
for _, s := range ctxt.Syms.Allsym {
if strings.HasPrefix(s.Name, "go.track.") {
s.Attr |= AttrSpecial // do not lay out in data segment
- s.Attr |= AttrHidden
+ s.Attr |= AttrNotInSymbolTable
if s.Attr.Reachable() {
buf.WriteString(s.Name[9:])
for p := s.Reachparent; p != nil; p = p.Reachparent {
}
for _, s := range ctxt.Syms.Allsym {
- if s.Attr.Hidden() {
+ if s.Attr.NotInSymbolTable() {
continue
}
if (s.Name == "" || s.Name[0] == '.') && s.Version == 0 && s.Name != ".rathole" && s.Name != ".TOC." {
// AttrStackCheck is used by dostkcheck to only check each NoSplit
// function's stack usage once.
AttrStackCheck
- // AttrHidden marks symbols that are not written to the symbol table.
- AttrHidden
+ // AttrNotInSymbolTable marks symbols that are not written to the symbol table.
+ AttrNotInSymbolTable
// AttrOnList marks symbols that are on some list (such as the list of
// all text symbols, or one of the lists of data symbols) and is
// consulted to avoid bugs where a symbol is put on a list twice.
func (a Attribute) CgoExportStatic() bool { return a&AttrCgoExportStatic != 0 }
func (a Attribute) Special() bool { return a&AttrSpecial != 0 }
func (a Attribute) StackCheck() bool { return a&AttrStackCheck != 0 }
-func (a Attribute) Hidden() bool { return a&AttrHidden != 0 }
+func (a Attribute) NotInSymbolTable() bool { return a&AttrNotInSymbolTable != 0 }
func (a Attribute) OnList() bool { return a&AttrOnList != 0 }
func (a Attribute) Local() bool { return a&AttrLocal != 0 }
func (a Attribute) ReflectMethod() bool { return a&AttrReflectMethod != 0 }
switch {
case strings.HasPrefix(s.Name, "type."):
if !ctxt.DynlinkingGo() {
- s.Attr |= AttrHidden
+ s.Attr |= AttrNotInSymbolTable
}
if UseRelro() {
s.Type = STYPERELRO
case strings.HasPrefix(s.Name, "go.itablink."):
nitablinks++
s.Type = SITABLINK
- s.Attr |= AttrHidden
+ s.Attr |= AttrNotInSymbolTable
s.Outer = symitablink
case strings.HasPrefix(s.Name, "go.string."):
s.Type = SGOSTRING
- s.Attr |= AttrHidden
+ s.Attr |= AttrNotInSymbolTable
s.Outer = symgostring
case strings.HasPrefix(s.Name, "runtime.gcbits."):
s.Type = SGCBITS
- s.Attr |= AttrHidden
+ s.Attr |= AttrNotInSymbolTable
s.Outer = symgcbits
case strings.HasSuffix(s.Name, "·f"):
if !ctxt.DynlinkingGo() {
- s.Attr |= AttrHidden
+ s.Attr |= AttrNotInSymbolTable
}
if UseRelro() {
s.Type = SGOFUNCRELRO
strings.HasPrefix(s.Name, "gclocals·"),
strings.HasPrefix(s.Name, "inltree."):
s.Type = SGOFUNC
- s.Attr |= AttrHidden
+ s.Attr |= AttrNotInSymbolTable
s.Outer = symgofunc
s.Align = 4
liveness += (s.Size + int64(s.Align) - 1) &^ (int64(s.Align) - 1)