// Every DIE has at least a AT_name attribute (but it will only be // written out if it is listed in the abbrev). func newdie(ctxt *Link, parent *dwarf.DWDie, abbrev int, name string, version int) *dwarf.DWDie { die := new(dwarf.DWDie) die.Abbrev = abbrev die.Link = parent.Child parent.Child = die newattr(die, dwarf.DW_AT_name, dwarf.DW_CLS_STRING, int64(len(name)), name) if name != "" && (abbrev <= dwarf.DW_ABRV_VARIABLE || abbrev >= dwarf.DW_ABRV_NULLTYPE) { if abbrev != dwarf.DW_ABRV_VARIABLE || version == 0 { sym := Linklookup(ctxt, dwarf.InfoPrefix+name, version) sym.Attr |= AttrHidden sym.Type = obj.SDWARFINFO die.Sym = sym } } return die }