diff options
Diffstat (limited to 'src/cmd/internal/obj')
| -rw-r--r-- | src/cmd/internal/obj/data.go | 39 | ||||
| -rw-r--r-- | src/cmd/internal/obj/go.go | 4 | ||||
| -rw-r--r-- | src/cmd/internal/obj/ld.go | 16 | ||||
| -rw-r--r-- | src/cmd/internal/obj/obj.go | 53 | ||||
| -rw-r--r-- | src/cmd/internal/obj/objfile.go | 76 | ||||
| -rw-r--r-- | src/cmd/internal/obj/pass.go | 12 | ||||
| -rw-r--r-- | src/cmd/internal/obj/pcln.go | 72 | ||||
| -rw-r--r-- | src/cmd/internal/obj/sym.go | 27 |
8 files changed, 105 insertions, 194 deletions
diff --git a/src/cmd/internal/obj/data.go b/src/cmd/internal/obj/data.go index 66995a3cd7..39e1ce527c 100644 --- a/src/cmd/internal/obj/data.go +++ b/src/cmd/internal/obj/data.go @@ -41,8 +41,7 @@ func mangle(file string) { } func Symgrow(ctxt *Link, s *LSym, lsiz int64) { - var siz int - siz = int(lsiz) + siz := int(lsiz) if int64(siz) != lsiz { log.Fatal("Symgrow size %d too long", lsiz) } @@ -143,9 +142,7 @@ func Setuintxx(ctxt *Link, s *LSym, off int64, v uint64, wid int64) int64 { } func adduintxx(ctxt *Link, s *LSym, v uint64, wid int) int64 { - var off int64 - - off = s.Size + off := s.Size Setuintxx(ctxt, s, off, v, int64(wid)) return off } @@ -183,17 +180,14 @@ func setuint64(ctxt *Link, s *LSym, r int64, v uint64) int64 { } func addaddrplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 { - var i int64 - var r *Reloc - if s.Type == 0 { s.Type = SDATA } s.Reachable = 1 - i = s.Size + i := s.Size s.Size += int64(ctxt.Arch.Ptrsize) Symgrow(ctxt, s, s.Size) - r = Addrel(s) + r := Addrel(s) r.Sym = t r.Off = int32(i) r.Siz = uint8(ctxt.Arch.Ptrsize) @@ -203,17 +197,14 @@ func addaddrplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 { } func addpcrelplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 { - var i int64 - var r *Reloc - if s.Type == 0 { s.Type = SDATA } s.Reachable = 1 - i = s.Size + i := s.Size s.Size += 4 Symgrow(ctxt, s, s.Size) - r = Addrel(s) + r := Addrel(s) r.Sym = t r.Off = int32(i) r.Add = add @@ -227,8 +218,6 @@ func addaddr(ctxt *Link, s *LSym, t *LSym) int64 { } func setaddrplus(ctxt *Link, s *LSym, off int64, t *LSym, add int64) int64 { - var r *Reloc - if s.Type == 0 { s.Type = SDATA } @@ -238,7 +227,7 @@ func setaddrplus(ctxt *Link, s *LSym, off int64, t *LSym, add int64) int64 { Symgrow(ctxt, s, s.Size) } - r = Addrel(s) + r := Addrel(s) r.Sym = t r.Off = int32(off) r.Siz = uint8(ctxt.Arch.Ptrsize) @@ -252,17 +241,14 @@ func setaddr(ctxt *Link, s *LSym, off int64, t *LSym) int64 { } func addsize(ctxt *Link, s *LSym, t *LSym) int64 { - var i int64 - var r *Reloc - if s.Type == 0 { s.Type = SDATA } s.Reachable = 1 - i = s.Size + i := s.Size s.Size += int64(ctxt.Arch.Ptrsize) Symgrow(ctxt, s, s.Size) - r = Addrel(s) + r := Addrel(s) r.Sym = t r.Off = int32(i) r.Siz = uint8(ctxt.Arch.Ptrsize) @@ -271,17 +257,14 @@ func addsize(ctxt *Link, s *LSym, t *LSym) int64 { } func addaddrplus4(ctxt *Link, s *LSym, t *LSym, add int64) int64 { - var i int64 - var r *Reloc - if s.Type == 0 { s.Type = SDATA } s.Reachable = 1 - i = s.Size + i := s.Size s.Size += 4 Symgrow(ctxt, s, s.Size) - r = Addrel(s) + r := Addrel(s) r.Sym = t r.Off = int32(i) r.Siz = 4 diff --git a/src/cmd/internal/obj/go.go b/src/cmd/internal/obj/go.go index 1bd10fcab8..496a5b83ff 100644 --- a/src/cmd/internal/obj/go.go +++ b/src/cmd/internal/obj/go.go @@ -36,9 +36,7 @@ var exper = []struct { } func addexp(s string) { - var i int - - for i = 0; i < len(exper); i++ { + for i := 0; i < len(exper); i++ { if exper[i].name == s { if exper[i].val != nil { *exper[i].val = 1 diff --git a/src/cmd/internal/obj/ld.go b/src/cmd/internal/obj/ld.go index 99cf64a3ed..4d2e4293aa 100644 --- a/src/cmd/internal/obj/ld.go +++ b/src/cmd/internal/obj/ld.go @@ -44,13 +44,11 @@ const ( ) func mkfwd(sym *LSym) { - var p *Prog - var i int var dwn [LOG]int32 var cnt [LOG]int32 var lst [LOG]*Prog - for i = 0; i < LOG; i++ { + for i := 0; i < LOG; i++ { if i == 0 { cnt[i] = 1 } else { @@ -60,8 +58,8 @@ func mkfwd(sym *LSym) { lst[i] = nil } - i = 0 - for p = sym.Text; p != nil && p.Link != nil; p = p.Link { + i := 0 + for p := sym.Text; p != nil && p.Link != nil; p = p.Link { i-- if i < 0 { i = LOG - 1 @@ -79,17 +77,13 @@ func mkfwd(sym *LSym) { } func Copyp(ctxt *Link, q *Prog) *Prog { - var p *Prog - - p = ctxt.NewProg() + p := ctxt.NewProg() *p = *q return p } func Appendp(ctxt *Link, q *Prog) *Prog { - var p *Prog - - p = ctxt.NewProg() + p := ctxt.NewProg() p.Link = q.Link q.Link = p p.Lineno = q.Lineno diff --git a/src/cmd/internal/obj/obj.go b/src/cmd/internal/obj/obj.go index 214d9cae8b..05902e2e33 100644 --- a/src/cmd/internal/obj/obj.go +++ b/src/cmd/internal/obj/obj.go @@ -25,12 +25,8 @@ func Linklinefmt(ctxt *Link, lno0 int, showAll, showFullPath bool) string { lno := int32(lno0) lno1 := lno var d int32 - var i int - var n int - var h *Hist - n = 0 - var fp string - for h = ctxt.Hist; h != nil; h = h.Link { + n := 0 + for h := ctxt.Hist; h != nil; h = h.Link { if h.Offset < 0 { continue } @@ -65,7 +61,8 @@ func Linklinefmt(ctxt *Link, lno0 int, showAll, showFullPath bool) string { if n > int(HISTSZ) { n = int(HISTSZ) } - for i = n - 1; i >= 0; i-- { + var fp string + for i := n - 1; i >= 0; i-- { if i != n-1 { if !showAll { break @@ -93,12 +90,12 @@ func Linklinefmt(ctxt *Link, lno0 int, showAll, showFullPath bool) string { // For portability, we allow ASCII case folding, so that haspathprefix("a/b/c", "A/B") is true. // Similarly, we allow slash folding, so that haspathprefix("a/b/c", "a\\b") is true. func haspathprefix(s string, t string) bool { - var i int - var cs int - var ct int if len(t) > len(s) { return false } + var i int + var cs int + var ct int for i = 0; i < len(t); i++ { cs = int(s[i]) ct = int(t[i]) @@ -131,17 +128,10 @@ func linkgetline(ctxt *Link, line int32, f **LSym, l *int32) { line *Hist ldel int32 } - var lno int32 var d int32 - var dlno int32 - var n int - var h *Hist - var buf string - var buf1 string - var file string - lno = int32(line) - n = 0 - for h = ctxt.Hist; h != nil; h = h.Link { + lno := int32(line) + n := 0 + for h := ctxt.Hist; h != nil; h = h.Link { if h.Offset < 0 { continue } @@ -182,6 +172,8 @@ func linkgetline(ctxt *Link, line int32, f **LSym, l *int32) { return } n-- + var dlno int32 + var file string if a[n].line != nil { file = a[n].line.Name dlno = a[n].ldel - 1 @@ -189,6 +181,7 @@ func linkgetline(ctxt *Link, line int32, f **LSym, l *int32) { file = a[n].incl.Name dlno = a[n].idel - 1 } + var buf string if filepath.IsAbs(file) || strings.HasPrefix(file, "<") { buf = fmt.Sprintf("%s", file) } else { @@ -199,14 +192,14 @@ func linkgetline(ctxt *Link, line int32, f **LSym, l *int32) { if len(buf) == len(ctxt.Trimpath) { buf = "??" } else { - buf1 = fmt.Sprintf("%s", buf[len(ctxt.Trimpath)+1:]) + buf1 := fmt.Sprintf("%s", buf[len(ctxt.Trimpath)+1:]) if buf1[0] == '\x00' { buf1 = "??" } buf = buf1 } } else if ctxt.Goroot_final != "" && haspathprefix(buf, ctxt.Goroot) { - buf1 = fmt.Sprintf("%s%s", ctxt.Goroot_final, buf[len(ctxt.Goroot):]) + buf1 := fmt.Sprintf("%s%s", ctxt.Goroot_final, buf[len(ctxt.Goroot):]) buf = buf1 } lno -= dlno @@ -215,8 +208,6 @@ func linkgetline(ctxt *Link, line int32, f **LSym, l *int32) { } func Linklinehist(ctxt *Link, lineno int, f string, offset int) { - var h *Hist - if false { // debug['f'] if f != "" { if offset != 0 { @@ -229,7 +220,7 @@ func Linklinehist(ctxt *Link, lineno int, f string, offset int) { } } - h = new(Hist) + h := new(Hist) *h = Hist{} h.Name = f h.Line = int32(lineno) @@ -248,12 +239,10 @@ func Linklinehist(ctxt *Link, lineno int, f string, offset int) { func Linkprfile(ctxt *Link, line int) { l := int32(line) var i int - var n int var a [HISTSZ]Hist - var h *Hist var d int32 - n = 0 - for h = ctxt.Hist; h != nil; h = h.Link { + n := 0 + for h := ctxt.Hist; h != nil; h = h.Link { if l < h.Line { break } @@ -286,7 +275,7 @@ func Linkprfile(ctxt *Link, line int) { if n > HISTSZ { n = HISTSZ } - for i = 0; i < n; i++ { + for i := 0; i < n; i++ { fmt.Printf("%s:%d ", a[i].Name, int(l-a[i].Line+a[i].Offset+1)) } } @@ -295,9 +284,7 @@ func Linkprfile(ctxt *Link, line int) { * start a new Prog list. */ func Linknewplist(ctxt *Link) *Plist { - var pl *Plist - - pl = new(Plist) + pl := new(Plist) *pl = Plist{} if ctxt.Plist == nil { ctxt.Plist = pl diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go index b15bd007af..6e76a39c53 100644 --- a/src/cmd/internal/obj/objfile.go +++ b/src/cmd/internal/obj/objfile.go @@ -18,15 +18,7 @@ var outfile string // does not write out object files. func Writeobjdirect(ctxt *Link, b *Biobuf) { var flag int - var found int - var h *Hist var s *LSym - var text *LSym - var etext *LSym - var curtext *LSym - var data *LSym - var edata *LSym - var pl *Plist var p *Prog var plink *Prog var a *Auto @@ -34,13 +26,13 @@ func Writeobjdirect(ctxt *Link, b *Biobuf) { // Build list of symbols, and assign instructions to lists. // Ignore ctxt->plist boundaries. There are no guarantees there, // and the C compilers and assemblers just use one big list. - text = nil + text := (*LSym)(nil) - curtext = nil - data = nil - etext = nil - edata = nil - for pl = ctxt.Plist; pl != nil; pl = pl.Link { + curtext := (*LSym)(nil) + data := (*LSym)(nil) + etext := (*LSym)(nil) + edata := (*LSym)(nil) + for pl := ctxt.Plist; pl != nil; pl = pl.Link { for p = pl.Firstpc; p != nil; p = plink { if ctxt.Debugasm != 0 && ctxt.Debugvlog != 0 { fmt.Printf("obj: %v\n", p) @@ -176,7 +168,8 @@ func Writeobjdirect(ctxt *Link, b *Biobuf) { } // Add reference to Go arguments for C or assembly functions without them. - for s = text; s != nil; s = s.Next { + var found int + for s := text; s != nil; s = s.Next { if !strings.HasPrefix(s.Name, "\"\".") { continue } @@ -200,7 +193,7 @@ func Writeobjdirect(ctxt *Link, b *Biobuf) { } // Turn functions into machine code images. - for s = text; s != nil; s = s.Next { + for s := text; s != nil; s = s.Next { mkfwd(s) linkpatch(ctxt, s) ctxt.Arch.Follow(ctxt, s) @@ -217,7 +210,7 @@ func Writeobjdirect(ctxt *Link, b *Biobuf) { Bputc(b, 1) // version // Emit autolib. - for h = ctxt.Hist; h != nil; h = h.Link { + for h := ctxt.Hist; h != nil; h = h.Link { if h.Offset < 0 { wrstring(b, h.Name) } @@ -225,10 +218,10 @@ func Writeobjdirect(ctxt *Link, b *Biobuf) { wrstring(b, "") // Emit symbols. - for s = text; s != nil; s = s.Next { + for s := text; s != nil; s = s.Next { writesym(ctxt, b, s) } - for s = data; s != nil; s = s.Next { + for s := data; s != nil; s = s.Next { writesym(ctxt, b, s) } @@ -240,16 +233,6 @@ func Writeobjdirect(ctxt *Link, b *Biobuf) { } func writesym(ctxt *Link, b *Biobuf, s *LSym) { - var r *Reloc - var i int - var j int - var c int - var n int - var pc *Pcln - var p *Prog - var a *Auto - var name string - if ctxt.Debugasm != 0 { fmt.Fprintf(ctxt.Bso, "%s ", s.Name) if s.Version != 0 { @@ -276,10 +259,12 @@ func writesym(ctxt *Link, b *Biobuf, s *LSym) { } fmt.Fprintf(ctxt.Bso, "\n") - for p = s.Text; p != nil; p = p.Link { + for p := s.Text; p != nil; p = p.Link { fmt.Fprintf(ctxt.Bso, "\t%#04x %v\n", uint(int(p.Pc)), p) } - for i = 0; i < len(s.P); { + var c int + var j int + for i := 0; i < len(s.P); { fmt.Fprintf(ctxt.Bso, "\t%#04x", uint(i)) for j = i; j < i+16 && j < len(s.P); j++ { fmt.Fprintf(ctxt.Bso, " %02x", s.P[j]) @@ -301,7 +286,9 @@ func writesym(ctxt *Link, b *Biobuf, s *LSym) { i += 16 } - for i = 0; i < len(s.R); i++ { + var r *Reloc + var name string + for i := 0; i < len(s.R); i++ { r = &s.R[i] name = "" if r.Sym != nil { @@ -325,7 +312,8 @@ func writesym(ctxt *Link, b *Biobuf, s *LSym) { wrdata(b, s.P) wrint(b, int64(len(s.R))) - for i = 0; i < len(s.R); i++ { + var r *Reloc + for i := 0; i < len(s.R); i++ { r = &s.R[i] wrint(b, int64(r.Off)) wrint(b, int64(r.Siz)) @@ -341,12 +329,12 @@ func writesym(ctxt *Link, b *Biobuf, s *LSym) { wrint(b, int64(s.Locals)) wrint(b, int64(s.Nosplit)) wrint(b, int64(s.Leaf)|int64(s.Cfunc)<<1) - n = 0 - for a = s.Autom; a != nil; a = a.Link { + n := 0 + for a := s.Autom; a != nil; a = a.Link { n++ } wrint(b, int64(n)) - for a = s.Autom; a != nil; a = a.Link { + for a := s.Autom; a != nil; a = a.Link { wrsym(b, a.Asym) wrint(b, int64(a.Aoffset)) if a.Name == NAME_AUTO { @@ -359,35 +347,33 @@ func writesym(ctxt *Link, b *Biobuf, s *LSym) { wrsym(b, a.Gotype) } - pc = s.Pcln + pc := s.Pcln wrdata(b, pc.Pcsp.P) wrdata(b, pc.Pcfile.P) wrdata(b, pc.Pcline.P) wrint(b, int64(len(pc.Pcdata))) - for i = 0; i < len(pc.Pcdata); i++ { + for i := 0; i < len(pc.Pcdata); i++ { wrdata(b, pc.Pcdata[i].P) } wrint(b, int64(len(pc.Funcdataoff))) - for i = 0; i < len(pc.Funcdataoff); i++ { + for i := 0; i < len(pc.Funcdataoff); i++ { wrsym(b, pc.Funcdata[i]) } - for i = 0; i < len(pc.Funcdataoff); i++ { + for i := 0; i < len(pc.Funcdataoff); i++ { wrint(b, pc.Funcdataoff[i]) } wrint(b, int64(len(pc.File))) - for i = 0; i < len(pc.File); i++ { + for i := 0; i < len(pc.File); i++ { wrpathsym(ctxt, b, pc.File[i]) } } } func wrint(b *Biobuf, sval int64) { - var uv uint64 var v uint64 var buf [10]uint8 - var p []uint8 - uv = (uint64(sval) << 1) ^ uint64(int64(sval>>63)) - p = buf[:] + uv := (uint64(sval) << 1) ^ uint64(int64(sval>>63)) + p := buf[:] for v = uv; v >= 0x80; v >>= 7 { p[0] = uint8(v | 0x80) p = p[1:] diff --git a/src/cmd/internal/obj/pass.go b/src/cmd/internal/obj/pass.go index 812e00b557..b03cd431a9 100644 --- a/src/cmd/internal/obj/pass.go +++ b/src/cmd/internal/obj/pass.go @@ -33,9 +33,7 @@ package obj // Code and data passes. func Brchain(ctxt *Link, p *Prog) *Prog { - var i int - - for i = 0; i < 20; i++ { + for i := 0; i < 20; i++ { if p == nil || p.As != AJMP || p.Pcond == nil { return p } @@ -46,10 +44,9 @@ func Brchain(ctxt *Link, p *Prog) *Prog { } func brloop(ctxt *Link, p *Prog) *Prog { - var c int var q *Prog - c = 0 + c := 0 for q = p; q != nil; q = q.Pcond { if q.As != AJMP || q.Pcond == nil { break @@ -152,12 +149,11 @@ func checkaddr(ctxt *Link, p *Prog, a *Addr) { func linkpatch(ctxt *Link, sym *LSym) { var c int32 var name string - var p *Prog var q *Prog ctxt.Cursym = sym - for p = sym.Text; p != nil; p = p.Link { + for p := sym.Text; p != nil; p = p.Link { checkaddr(ctxt, p, &p.From) checkaddr(ctxt, p, &p.From3) checkaddr(ctxt, p, &p.To) @@ -203,7 +199,7 @@ func linkpatch(ctxt *Link, sym *LSym) { p.Pcond = q } - for p = sym.Text; p != nil; p = p.Link { + for p := sym.Text; p != nil; p = p.Link { p.Mark = 0 /* initialization for follow */ if p.Pcond != nil { p.Pcond = brloop(ctxt, p.Pcond) diff --git a/src/cmd/internal/obj/pcln.go b/src/cmd/internal/obj/pcln.go index f5cdd3a099..13bb1cd85c 100644 --- a/src/cmd/internal/obj/pcln.go +++ b/src/cmd/internal/obj/pcln.go @@ -28,17 +28,8 @@ func addvarint(ctxt *Link, d *Pcdata, val uint32) { // where func is the function, val is the current value, p is the instruction being // considered, and arg can be used to further parameterize valfunc. func funcpctab(ctxt *Link, dst *Pcdata, func_ *LSym, desc string, valfunc func(*Link, *LSym, int32, *Prog, int32, interface{}) int32, arg interface{}) { - var dbg int - var i int - var oldval int32 - var val int32 - var started int32 - var delta uint32 - var pc int64 - var p *Prog - // To debug a specific function, uncomment second line and change name. - dbg = 0 + dbg := 0 //dbg = strcmp(func->name, "main.main") == 0; //dbg = strcmp(desc, "pctofile") == 0; @@ -51,21 +42,22 @@ func funcpctab(ctxt *Link, dst *Pcdata, func_ *LSym, desc string, valfunc func(* fmt.Fprintf(ctxt.Bso, "funcpctab %s [valfunc=%s]\n", func_.Name, desc) } - val = -1 - oldval = val + val := int32(-1) + oldval := val if func_.Text == nil { ctxt.Debugpcln -= int32(dbg) return } - pc = func_.Text.Pc + pc := func_.Text.Pc if ctxt.Debugpcln != 0 { fmt.Fprintf(ctxt.Bso, "%6x %6d %v\n", uint64(pc), val, func_.Text) } - started = 0 - for p = func_.Text; p != nil; p = p.Link { + started := int32(0) + var delta uint32 + for p := func_.Text; p != nil; p = p.Link { // Update val. If it's not changing, keep going. val = valfunc(ctxt, func_, val, p, 0, arg) @@ -134,7 +126,7 @@ func funcpctab(ctxt *Link, dst *Pcdata, func_ *LSym, desc string, valfunc func(* if ctxt.Debugpcln != 0 { fmt.Fprintf(ctxt.Bso, "wrote %d bytes to %p\n", len(dst.P), dst) - for i = 0; i < len(dst.P); i++ { + for i := 0; i < len(dst.P); i++ { fmt.Fprintf(ctxt.Bso, " %02x", dst.P[i]) } fmt.Fprintf(ctxt.Bso, "\n") @@ -148,14 +140,11 @@ func funcpctab(ctxt *Link, dst *Pcdata, func_ *LSym, desc string, valfunc func(* // Because p->lineno applies to p, phase == 0 (before p) // takes care of the update. func pctofileline(ctxt *Link, sym *LSym, oldval int32, p *Prog, phase int32, arg interface{}) int32 { - var i int32 - var l int32 - var f *LSym - var pcln *Pcln - if p.As == ATEXT || p.As == ANOP || p.As == AUSEFIELD || p.Lineno == 0 || phase == 1 { return oldval } + var l int32 + var f *LSym linkgetline(ctxt, p.Lineno, &f, &l) if f == nil { // print("getline failed for %s %P\n", ctxt->cursym->name, p); @@ -165,12 +154,13 @@ func pctofileline(ctxt *Link, sym *LSym, oldval int32, p *Prog, phase int32, arg if arg == nil { return l } - pcln = arg.(*Pcln) + pcln := arg.(*Pcln) if f == pcln.Lastfile { return int32(pcln.Lastindex) } + var i int32 for i = 0; i < int32(len(pcln.File)); i++ { file := pcln.File[i] if file == f { @@ -222,20 +212,14 @@ func pctopcdata(ctxt *Link, sym *LSym, oldval int32, p *Prog, phase int32, arg i } func linkpcln(ctxt *Link, cursym *LSym) { - var p *Prog - var pcln *Pcln - var i int - var npcdata int - var nfuncdata int - ctxt.Cursym = cursym - pcln = new(Pcln) + pcln := new(Pcln) cursym.Pcln = pcln - npcdata = 0 - nfuncdata = 0 - for p = cursym.Text; p != nil; p = p.Link { + npcdata := 0 + nfuncdata := 0 + for p := cursym.Text; p != nil; p = p.Link { if p.As == APCDATA && p.From.Offset >= int64(npcdata) { npcdata = int(p.From.Offset + 1) } @@ -257,7 +241,7 @@ func linkpcln(ctxt *Link, cursym *LSym) { // tabulate which pc and func data we have. havepc := make([]uint32, (npcdata+31)/32) havefunc := make([]uint32, (nfuncdata+31)/32) - for p = cursym.Text; p != nil; p = p.Link { + for p := cursym.Text; p != nil; p = p.Link { if p.As == AFUNCDATA { if (havefunc[p.From.Offset/32]>>uint64(p.From.Offset%32))&1 != 0 { ctxt.Diag("multiple definitions for FUNCDATA $%d", p.From.Offset) @@ -271,7 +255,7 @@ func linkpcln(ctxt *Link, cursym *LSym) { } // pcdata. - for i = 0; i < npcdata; i++ { + for i := 0; i < npcdata; i++ { if (havepc[i/32]>>uint(i%32))&1 == 0 { continue } @@ -280,7 +264,8 @@ func linkpcln(ctxt *Link, cursym *LSym) { // funcdata if nfuncdata > 0 { - for p = cursym.Text; p != nil; p = p.Link { + var i int + for p := cursym.Text; p != nil; p = p.Link { if p.As == AFUNCDATA { i = int(p.From.Offset) pcln.Funcdataoff[i] = p.To.Offset @@ -297,13 +282,9 @@ func linkpcln(ctxt *Link, cursym *LSym) { // iteration over encoded pcdata tables. func getvarint(pp *[]byte) uint32 { - var p []byte - var shift int - var v uint32 - - v = 0 - p = *pp - for shift = 0; ; shift += 7 { + v := uint32(0) + p := *pp + for shift := 0; ; shift += 7 { v |= uint32(p[0]&0x7F) << uint(shift) tmp7 := p p = p[1:] @@ -317,9 +298,6 @@ func getvarint(pp *[]byte) uint32 { } func pciternext(it *Pciter) { - var v uint32 - var dv int32 - it.pc = it.nextpc if it.done != 0 { return @@ -330,7 +308,7 @@ func pciternext(it *Pciter) { } // value delta - v = getvarint(&it.p) + v := getvarint(&it.p) if v == 0 && it.start == 0 { it.done = 1 @@ -338,7 +316,7 @@ func pciternext(it *Pciter) { } it.start = 0 - dv = int32(v>>1) ^ (int32(v<<31) >> 31) + dv := int32(v>>1) ^ (int32(v<<31) >> 31) it.value += dv // pc delta diff --git a/src/cmd/internal/obj/sym.go b/src/cmd/internal/obj/sym.go index 30d0eb1751..d9df440f6e 100644 --- a/src/cmd/internal/obj/sym.go +++ b/src/cmd/internal/obj/sym.go @@ -101,9 +101,7 @@ var headers = []struct { } func headtype(name string) int { - var i int - - for i = 0; i < len(headers); i++ { + for i := 0; i < len(headers); i++ { if name == headers[i].name { return headers[i].val } @@ -114,9 +112,7 @@ func headtype(name string) int { var headstr_buf string func Headstr(v int) string { - var i int - - for i = 0; i < len(headers); i++ { + for i := 0; i < len(headers); i++ { if v == headers[i].val { return headers[i].name } @@ -126,13 +122,11 @@ func Headstr(v int) string { } func Linknew(arch *LinkArch) *Link { - var ctxt *Link - var p string var buf string linksetexp() - ctxt = new(Link) + ctxt := new(Link) ctxt.Arch = arch ctxt.Version = HistVersion ctxt.Goroot = Getgoroot() @@ -211,7 +205,7 @@ func Linknew(arch *LinkArch) *Link { // On arm, record goarm. if ctxt.Arch.Thechar == '5' { - p = Getgoarm() + p := Getgoarm() if p != "" { ctxt.Goarm = int32(Atoi(p)) } else { @@ -223,9 +217,7 @@ func Linknew(arch *LinkArch) *Link { } func linknewsym(ctxt *Link, symb string, v int) *LSym { - var s *LSym - - s = new(LSym) + s := new(LSym) *s = LSym{} s.Dynid = -1 @@ -246,17 +238,14 @@ func linknewsym(ctxt *Link, symb string, v int) *LSym { } func _lookup(ctxt *Link, symb string, v int, creat int) *LSym { - var s *LSym - var h uint32 - - h = uint32(v) + h := uint32(v) for i := 0; i < len(symb); i++ { c := int(symb[i]) h = h + h + h + uint32(c) } h &= 0xffffff h %= LINKHASH - for s = ctxt.Hash[h]; s != nil; s = s.Hash { + for s := ctxt.Hash[h]; s != nil; s = s.Hash { if int(s.Version) == v && s.Name == symb { return s } @@ -265,7 +254,7 @@ func _lookup(ctxt *Link, symb string, v int, creat int) *LSym { return nil } - s = linknewsym(ctxt, symb, v) + s := linknewsym(ctxt, symb, v) s.Extname = s.Name s.Hash = ctxt.Hash[h] ctxt.Hash[h] = s |
