}
// record field tracking references
- fmt_ := ""
-
+ var buf bytes.Buffer
var p *LSym
for s := Ctxt.Allsym; s != nil; s = s.Allsym {
if strings.HasPrefix(s.Name, "go.track.") {
s.Special = 1 // do not lay out in data segment
s.Hide = 1
if s.Reachable {
- fmt_ += fmt.Sprintf("%s", s.Name[9:])
+ buf.WriteString(s.Name[9:])
for p = s.Reachparent; p != nil; p = p.Reachparent {
- fmt_ += fmt.Sprintf("\t%s", p.Name)
+ buf.WriteString("\t")
+ buf.WriteString(p.Name)
}
- fmt_ += fmt.Sprintf("\n")
+ buf.WriteString("\n")
}
s.Type = SCONST
if !s.Reachable {
return
}
- addstrdata(tracksym, fmt_)
+ addstrdata(tracksym, buf.String())
}
func doweak() {
func Rconv(r int) string {
if r >= REG_AL && r-REG_AL < len(Register) {
- return fmt.Sprintf("%s", Register[r-REG_AL])
+ return Register[r-REG_AL]
}
return fmt.Sprintf("Rgok(%d)", r-obj.RBase386)
}
}
var buf string
if filepath.IsAbs(file) || strings.HasPrefix(file, "<") {
- buf = fmt.Sprintf("%s", file)
+ buf = file
} else {
- buf = fmt.Sprintf("%s/%s", ctxt.Pathname, file)
+ buf = ctxt.Pathname + "/" + file
}
// Remove leading ctxt->trimpath, or else rewrite $GOROOT to $GOROOT_FINAL.
if ctxt.Trimpath != "" && haspathprefix(buf, ctxt.Trimpath) {
if len(buf) == len(ctxt.Trimpath) {
buf = "??"
} else {
- buf1 := fmt.Sprintf("%s", buf[len(ctxt.Trimpath)+1:])
+ buf1 := buf[len(ctxt.Trimpath)+1:]
if buf1[0] == '\x00' {
buf1 = "??"
}
func Rconv(r int) string {
if REG_AL <= r && r-REG_AL < len(Register) {
- return fmt.Sprintf("%s", Register[r-REG_AL])
+ return Register[r-REG_AL]
}
return fmt.Sprintf("Rgok(%d)", r-obj.RBaseAMD64)
}