aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal
diff options
context:
space:
mode:
authorJes Cok <xigua67damn@gmail.com>2025-10-19 19:53:27 +0000
committerGopher Robot <gobot@golang.org>2025-10-21 08:13:08 -0700
commita5a249d6a64508376320bc48546a6a43aebecda7 (patch)
tree707720726df7c69b68536f55154a5fb0c2704763 /src/cmd/link/internal
parent694182d77b1a0e3676214ad0e361bdbdafde33a1 (diff)
downloadgo-a5a249d6a64508376320bc48546a6a43aebecda7.tar.xz
all: eliminate unnecessary type conversions
Found by github.com/mdempsky/unconvert Change-Id: I88ce10390a49ba768a4deaa0df9057c93c1164de GitHub-Last-Rev: 3b0f7e8f74f58340637f33287c238765856b2483 GitHub-Pull-Request: golang/go#75974 Reviewed-on: https://go-review.googlesource.com/c/go/+/712940 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@golang.org> Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: David Chase <drchase@google.com>
Diffstat (limited to 'src/cmd/link/internal')
-rw-r--r--src/cmd/link/internal/amd64/asm.go2
-rw-r--r--src/cmd/link/internal/arm/asm.go2
-rw-r--r--src/cmd/link/internal/arm64/asm.go10
-rw-r--r--src/cmd/link/internal/ld/data.go10
-rw-r--r--src/cmd/link/internal/ld/dwarf.go40
-rw-r--r--src/cmd/link/internal/ld/elf.go22
-rw-r--r--src/cmd/link/internal/ld/macho.go6
-rw-r--r--src/cmd/link/internal/ld/pcln.go8
-rw-r--r--src/cmd/link/internal/ld/pe.go4
-rw-r--r--src/cmd/link/internal/ld/xcoff.go18
-rw-r--r--src/cmd/link/internal/loadelf/ldelf.go6
-rw-r--r--src/cmd/link/internal/loader/loader.go10
-rw-r--r--src/cmd/link/internal/loong64/asm.go22
-rw-r--r--src/cmd/link/internal/mips64/asm.go8
-rw-r--r--src/cmd/link/internal/ppc64/asm.go4
-rw-r--r--src/cmd/link/internal/riscv64/asm.go6
-rw-r--r--src/cmd/link/internal/wasm/asm.go4
17 files changed, 91 insertions, 91 deletions
diff --git a/src/cmd/link/internal/amd64/asm.go b/src/cmd/link/internal/amd64/asm.go
index 5424de800c..d27342f23f 100644
--- a/src/cmd/link/internal/amd64/asm.go
+++ b/src/cmd/link/internal/amd64/asm.go
@@ -407,7 +407,7 @@ func adddynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loade
} else {
ldr.Errorf(s, "unexpected relocation for dynamic symbol %s", ldr.SymName(targ))
}
- rela.AddAddrPlus(target.Arch, targ, int64(r.Add()))
+ rela.AddAddrPlus(target.Arch, targ, r.Add())
// Not mark r done here. So we still apply it statically,
// so in the file content we'll also have the right offset
// to the relocation target. So it can be examined statically
diff --git a/src/cmd/link/internal/arm/asm.go b/src/cmd/link/internal/arm/asm.go
index a113196d10..248ec648bc 100644
--- a/src/cmd/link/internal/arm/asm.go
+++ b/src/cmd/link/internal/arm/asm.go
@@ -400,7 +400,7 @@ func trampoline(ctxt *ld.Link, ldr *loader.Loader, ri int, rs, s loader.Sym) {
for i := 0; ; i++ {
oName := ldr.SymName(rs)
name := oName + fmt.Sprintf("%+d-tramp%d", offset, i)
- tramp = ldr.LookupOrCreateSym(name, int(ldr.SymVersion(rs)))
+ tramp = ldr.LookupOrCreateSym(name, ldr.SymVersion(rs))
ldr.SetAttrReachable(tramp, true)
if ldr.SymType(tramp) == sym.SDYNIMPORT {
// don't reuse trampoline defined in other module
diff --git a/src/cmd/link/internal/arm64/asm.go b/src/cmd/link/internal/arm64/asm.go
index 8d8ea8ac54..1f4282adec 100644
--- a/src/cmd/link/internal/arm64/asm.go
+++ b/src/cmd/link/internal/arm64/asm.go
@@ -457,7 +457,7 @@ func adddynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loade
} else {
ldr.Errorf(s, "unexpected relocation for dynamic symbol %s", ldr.SymName(targ))
}
- rela.AddAddrPlus(target.Arch, targ, int64(r.Add()))
+ rela.AddAddrPlus(target.Arch, targ, r.Add())
// Not mark r done here. So we still apply it statically,
// so in the file content we'll also have the right offset
// to the relocation target. So it can be examined statically
@@ -876,7 +876,7 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade
if r.Siz() == 8 {
val = r.Add()
} else if target.IsBigEndian() {
- val = int64(uint32(val)) | int64(r.Add())<<32
+ val = int64(uint32(val)) | r.Add()<<32
} else {
val = val>>32<<32 | int64(uint32(r.Add()))
}
@@ -972,13 +972,13 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade
// R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
// turn ADRP to MOVZ
- o0 = 0xd2a00000 | uint32(o0&0x1f) | (uint32((v>>16)&0xffff) << 5)
+ o0 = 0xd2a00000 | o0&0x1f | (uint32((v>>16)&0xffff) << 5)
// R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
// turn LD64 to MOVK
if v&3 != 0 {
ldr.Errorf(s, "invalid address: %x for relocation type: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC", v)
}
- o1 = 0xf2800000 | uint32(o1&0x1f) | (uint32(v&0xffff) << 5)
+ o1 = 0xf2800000 | o1&0x1f | (uint32(v&0xffff) << 5)
// when laid out, the instruction order must always be o0, o1.
if target.IsBigEndian() {
@@ -1372,7 +1372,7 @@ func trampoline(ctxt *ld.Link, ldr *loader.Loader, ri int, rs, s loader.Sym) {
for i := 0; ; i++ {
oName := ldr.SymName(rs)
name := oName + fmt.Sprintf("%+x-tramp%d", r.Add(), i)
- tramp = ldr.LookupOrCreateSym(name, int(ldr.SymVersion(rs)))
+ tramp = ldr.LookupOrCreateSym(name, ldr.SymVersion(rs))
ldr.SetAttrReachable(tramp, true)
if ldr.SymType(tramp) == sym.SDYNIMPORT {
// don't reuse trampoline defined in other module
diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go
index a49cae0d95..dfb1d7bafb 100644
--- a/src/cmd/link/internal/ld/data.go
+++ b/src/cmd/link/internal/ld/data.go
@@ -427,7 +427,7 @@ func (st *relocSymState) relocsym(s loader.Sym, P []byte) {
}
case objabi.R_DWTXTADDR_U1, objabi.R_DWTXTADDR_U2, objabi.R_DWTXTADDR_U3, objabi.R_DWTXTADDR_U4:
unit := ldr.SymUnit(rs)
- if idx, ok := unit.Addrs[sym.LoaderSym(rs)]; ok {
+ if idx, ok := unit.Addrs[rs]; ok {
o = int64(idx)
} else {
st.err.Errorf(s, "missing .debug_addr index relocation target %s", ldr.SymName(rs))
@@ -512,7 +512,7 @@ func (st *relocSymState) relocsym(s loader.Sym, P []byte) {
case objabi.R_ADDRCUOFF:
// debug_range and debug_loc elements use this relocation type to get an
// offset from the start of the compile unit.
- o = ldr.SymValue(rs) + r.Add() - ldr.SymValue(loader.Sym(ldr.SymUnit(rs).Textp[0]))
+ o = ldr.SymValue(rs) + r.Add() - ldr.SymValue(ldr.SymUnit(rs).Textp[0])
// r.Sym() can be 0 when CALL $(constant) is transformed from absolute PC to relative PC call.
case objabi.R_GOTPCREL:
@@ -560,7 +560,7 @@ func (st *relocSymState) relocsym(s loader.Sym, P []byte) {
if rst != sym.SHOSTOBJ {
o += int64(uint64(ldr.SymValue(rs)) - ldr.SymSect(rs).Vaddr)
}
- o -= int64(off) // relative to section offset, not symbol
+ o -= off // relative to section offset, not symbol
}
} else {
o += int64(siz)
@@ -698,7 +698,7 @@ func extreloc(ctxt *Link, ldr *loader.Loader, s loader.Sym, r loader.Reloc) (loa
return rr, false
}
rs := r.Sym()
- rr.Xsym = loader.Sym(ldr.SymSect(rs).Sym)
+ rr.Xsym = ldr.SymSect(rs).Sym
rr.Xadd = r.Add() + ldr.SymValue(rs) - int64(ldr.SymSect(rs).Vaddr)
// r.Sym() can be 0 when CALL $(constant) is transformed from absolute PC to relative PC call.
@@ -2268,7 +2268,7 @@ func (state *dodataState) allocateDwarfSections(ctxt *Link) {
s := dwarfp[i].secSym()
sect := state.allocateNamedDataSection(&Segdwarf, ldr.SymName(s), []sym.SymKind{}, 04)
ldr.SetSymSect(s, sect)
- sect.Sym = sym.LoaderSym(s)
+ sect.Sym = s
curType := ldr.SymType(s)
state.setSymType(s, sym.SRODATA)
ldr.SetSymValue(s, int64(uint64(state.datsize)-sect.Vaddr))
diff --git a/src/cmd/link/internal/ld/dwarf.go b/src/cmd/link/internal/ld/dwarf.go
index 0003938ef2..222e712ede 100644
--- a/src/cmd/link/internal/ld/dwarf.go
+++ b/src/cmd/link/internal/ld/dwarf.go
@@ -1011,7 +1011,7 @@ func (d *dwctxt) addDwarfAddrRef(sb *loader.SymbolBuilder, t loader.Sym) {
func (d *dwctxt) calcCompUnitRanges() {
var prevUnit *sym.CompilationUnit
for _, s := range d.linkctxt.Textp {
- sym := loader.Sym(s)
+ sym := s
fi := d.ldr.FuncInfo(sym)
if !fi.Valid() {
@@ -1033,7 +1033,7 @@ func (d *dwctxt) calcCompUnitRanges() {
// only create boundaries between symbols from
// different units.
sval := d.ldr.SymValue(sym)
- u0val := d.ldr.SymValue(loader.Sym(unit.Textp[0]))
+ u0val := d.ldr.SymValue(unit.Textp[0])
if prevUnit != unit {
unit.PCs = append(unit.PCs, dwarf.Range{Start: sval - u0val})
prevUnit = unit
@@ -1339,7 +1339,7 @@ func (d *dwctxt) writelines(unit *sym.CompilationUnit, lineProlog loader.Sym) []
// Output the state machine for each function remaining.
for _, s := range unit.Textp {
- fnSym := loader.Sym(s)
+ fnSym := s
_, _, _, lines := d.ldr.GetFuncDwarfAuxSyms(fnSym)
// Chain the line symbol onto the list.
@@ -1399,7 +1399,7 @@ func (d *dwctxt) writepcranges(unit *sym.CompilationUnit, base loader.Sym, pcs [
// Collect up the ranges for functions in the unit.
rsize := uint64(rsu.Size())
for _, ls := range unit.RangeSyms {
- s := loader.Sym(ls)
+ s := ls
syms = append(syms, s)
rsize += uint64(d.ldr.SymSize(s))
}
@@ -1501,7 +1501,7 @@ func (d *dwctxt) writeframes(fs loader.Sym) dwarfSecInfo {
var deltaBuf []byte
pcsp := obj.NewPCIter(uint32(d.arch.MinLC))
for _, s := range d.linkctxt.Textp {
- fn := loader.Sym(s)
+ fn := s
fi := d.ldr.FuncInfo(fn)
if !fi.Valid() {
continue
@@ -1646,7 +1646,7 @@ func (d *dwctxt) writeUnitInfo(u *sym.CompilationUnit, abbrevsym loader.Sym, add
cu = append(cu, u.AbsFnDIEs...)
cu = append(cu, u.FuncDIEs...)
if u.Consts != 0 {
- cu = append(cu, loader.Sym(u.Consts))
+ cu = append(cu, u.Consts)
}
cu = append(cu, u.VarDIEs...)
var cusize int64
@@ -1772,7 +1772,7 @@ func (d *dwctxt) assignDebugAddrSlot(unit *sym.CompilationUnit, fnsym loader.Sym
if unit.Addrs == nil {
unit.Addrs = make(map[sym.LoaderSym]uint32)
}
- if _, ok := unit.Addrs[sym.LoaderSym(rsym)]; ok {
+ if _, ok := unit.Addrs[rsym]; ok {
// already present, no work needed
} else {
sl := len(unit.Addrs)
@@ -1781,7 +1781,7 @@ func (d *dwctxt) assignDebugAddrSlot(unit *sym.CompilationUnit, fnsym loader.Sym
if sl > lim {
log.Fatalf("internal error: %s relocation overflow on infosym for %s", rt.String(), d.ldr.SymName(fnsym))
}
- unit.Addrs[sym.LoaderSym(rsym)] = uint32(sl)
+ unit.Addrs[rsym] = uint32(sl)
sb.AddAddrPlus(d.arch, rsym, 0)
data := sb.Data()
if d.arch.PtrSize == 4 {
@@ -1805,11 +1805,11 @@ func (d *dwctxt) dwarfVisitFunction(fnSym loader.Sym, unit *sym.CompilationUnit)
}
d.ldr.SetAttrNotInSymbolTable(infosym, true)
d.ldr.SetAttrReachable(infosym, true)
- unit.FuncDIEs = append(unit.FuncDIEs, sym.LoaderSym(infosym))
+ unit.FuncDIEs = append(unit.FuncDIEs, infosym)
if rangesym != 0 {
d.ldr.SetAttrNotInSymbolTable(rangesym, true)
d.ldr.SetAttrReachable(rangesym, true)
- unit.RangeSyms = append(unit.RangeSyms, sym.LoaderSym(rangesym))
+ unit.RangeSyms = append(unit.RangeSyms, rangesym)
}
// Walk the relocations of the subprogram DIE symbol to discover
@@ -1836,7 +1836,7 @@ func (d *dwctxt) dwarfVisitFunction(fnSym loader.Sym, unit *sym.CompilationUnit)
if !d.ldr.AttrOnList(rsym) {
// abstract function
d.ldr.SetAttrOnList(rsym, true)
- unit.AbsFnDIEs = append(unit.AbsFnDIEs, sym.LoaderSym(rsym))
+ unit.AbsFnDIEs = append(unit.AbsFnDIEs, rsym)
d.importInfoSymbol(rsym)
}
continue
@@ -1942,7 +1942,7 @@ func dwarfGenerateDebugInfo(ctxt *Link) {
for _, unit := range lib.Units {
// We drop the constants into the first CU.
if consts != 0 {
- unit.Consts = sym.LoaderSym(consts)
+ unit.Consts = consts
d.importInfoSymbol(consts)
consts = 0
}
@@ -2008,7 +2008,7 @@ func dwarfGenerateDebugInfo(ctxt *Link) {
// abstract functions, visit range symbols. Note that
// Textp has been dead-code-eliminated already.
for _, s := range unit.Textp {
- d.dwarfVisitFunction(loader.Sym(s), unit)
+ d.dwarfVisitFunction(s, unit)
}
}
}
@@ -2073,7 +2073,7 @@ func dwarfGenerateDebugInfo(ctxt *Link) {
if varDIE != 0 {
unit := d.ldr.SymUnit(idx)
d.defgotype(gt)
- unit.VarDIEs = append(unit.VarDIEs, sym.LoaderSym(varDIE))
+ unit.VarDIEs = append(unit.VarDIEs, varDIE)
}
}
@@ -2125,7 +2125,7 @@ type dwUnitSyms struct {
func (d *dwctxt) dwUnitPortion(u *sym.CompilationUnit, abbrevsym loader.Sym, us *dwUnitSyms) {
if u.DWInfo.Abbrev != dwarf.DW_ABRV_COMPUNIT_TEXTLESS {
us.linesyms = d.writelines(u, us.lineProlog)
- base := loader.Sym(u.Textp[0])
+ base := u.Textp[0]
if buildcfg.Experiment.Dwarf5 {
d.writedebugaddr(u, us.addrsym)
}
@@ -2145,7 +2145,7 @@ func (d *dwctxt) writedebugaddr(unit *sym.CompilationUnit, debugaddr loader.Sym)
var dsyms []loader.Sym
for _, s := range unit.Textp {
- fnSym := loader.Sym(s)
+ fnSym := s
// NB: this looks at SDWARFFCN; it will need to also look
// at range and loc when they get there.
infosym, locsym, rangessym, _ := d.ldr.GetFuncDwarfAuxSyms(fnSym)
@@ -2305,8 +2305,8 @@ func (d *dwctxt) dwarfGenerateDebugSyms() {
len += uint64(d.ldr.SymSize(hdrsym))
su := d.ldr.MakeSymbolUpdater(hdrsym)
if isDwarf64(d.linkctxt) {
- len -= 12 // sub size of length field
- su.SetUint(d.arch, 4, uint64(len)) // 4 because of 0XFFFFFFFF
+ len -= 12 // sub size of length field
+ su.SetUint(d.arch, 4, len) // 4 because of 0XFFFFFFFF
} else {
len -= 4 // subtract size of length field
su.SetUint32(d.arch, 0, uint32(len))
@@ -2377,7 +2377,7 @@ func (d *dwctxt) dwarfGenerateDebugSyms() {
func (d *dwctxt) collectUnitLocs(u *sym.CompilationUnit) []loader.Sym {
syms := []loader.Sym{}
for _, fn := range u.FuncDIEs {
- relocs := d.ldr.Relocs(loader.Sym(fn))
+ relocs := d.ldr.Relocs(fn)
for i := 0; i < relocs.Count(); i++ {
reloc := relocs.At(i)
if reloc.Type() != objabi.R_DWARFSECREF {
@@ -2510,7 +2510,7 @@ func dwarfcompress(ctxt *Link) {
ldr.SetSymValue(s, int64(pos))
sect := ldr.SymSect(s)
if sect != prevSect {
- sect.Vaddr = uint64(pos)
+ sect.Vaddr = pos
prevSect = sect
}
if ldr.SubSym(s) != 0 {
diff --git a/src/cmd/link/internal/ld/elf.go b/src/cmd/link/internal/ld/elf.go
index 6ff1d94383..ed215d7fe5 100644
--- a/src/cmd/link/internal/ld/elf.go
+++ b/src/cmd/link/internal/ld/elf.go
@@ -343,8 +343,8 @@ func elf32phdr(out *OutBuf, e *ElfPhdr) {
func elf64shdr(out *OutBuf, e *ElfShdr) {
out.Write32(e.Name)
- out.Write32(uint32(e.Type))
- out.Write64(uint64(e.Flags))
+ out.Write32(e.Type)
+ out.Write64(e.Flags)
out.Write64(e.Addr)
out.Write64(e.Off)
out.Write64(e.Size)
@@ -356,7 +356,7 @@ func elf64shdr(out *OutBuf, e *ElfShdr) {
func elf32shdr(out *OutBuf, e *ElfShdr) {
out.Write32(e.Name)
- out.Write32(uint32(e.Type))
+ out.Write32(e.Type)
out.Write32(uint32(e.Flags))
out.Write32(uint32(e.Addr))
out.Write32(uint32(e.Off))
@@ -442,9 +442,9 @@ func getElfEhdr() *ElfEhdr {
func elf64writehdr(out *OutBuf) uint32 {
out.Write(ehdr.Ident[:])
- out.Write16(uint16(ehdr.Type))
- out.Write16(uint16(ehdr.Machine))
- out.Write32(uint32(ehdr.Version))
+ out.Write16(ehdr.Type)
+ out.Write16(ehdr.Machine)
+ out.Write32(ehdr.Version)
out.Write64(ehdr.Entry)
out.Write64(ehdr.Phoff)
out.Write64(ehdr.Shoff)
@@ -460,9 +460,9 @@ func elf64writehdr(out *OutBuf) uint32 {
func elf32writehdr(out *OutBuf) uint32 {
out.Write(ehdr.Ident[:])
- out.Write16(uint16(ehdr.Type))
- out.Write16(uint16(ehdr.Machine))
- out.Write32(uint32(ehdr.Version))
+ out.Write16(ehdr.Type)
+ out.Write16(ehdr.Machine)
+ out.Write32(ehdr.Version)
out.Write32(uint32(ehdr.Entry))
out.Write32(uint32(ehdr.Phoff))
out.Write32(uint32(ehdr.Shoff))
@@ -1379,7 +1379,7 @@ func elfEmitReloc(ctxt *Link) {
for i := 0; i < len(Segdwarf.Sections); i++ {
sect := Segdwarf.Sections[i]
si := dwarfp[i]
- if si.secSym() != loader.Sym(sect.Sym) ||
+ if si.secSym() != sect.Sym ||
ctxt.loader.SymSect(si.secSym()) != sect {
panic("inconsistency between dwarfp and Segdwarf")
}
@@ -1426,7 +1426,7 @@ func (ctxt *Link) doelf() {
shstrtabAddstring := func(s string) {
off := addshstr(s)
- elfsetstring(ctxt, 0, s, int(off))
+ elfsetstring(ctxt, 0, s, off)
}
shstrtabAddstring("")
diff --git a/src/cmd/link/internal/ld/macho.go b/src/cmd/link/internal/ld/macho.go
index c262634666..8e059f299f 100644
--- a/src/cmd/link/internal/ld/macho.go
+++ b/src/cmd/link/internal/ld/macho.go
@@ -1254,7 +1254,7 @@ func machoEmitReloc(ctxt *Link) {
for i := 0; i < len(Segdwarf.Sections); i++ {
sect := Segdwarf.Sections[i]
si := dwarfp[i]
- if si.secSym() != loader.Sym(sect.Sym) ||
+ if si.secSym() != sect.Sym ||
ctxt.loader.SymSect(si.secSym()) != sect {
panic("inconsistency between dwarfp and Segdwarf")
}
@@ -1535,11 +1535,11 @@ func machoCodeSign(ctxt *Link, fname string) error {
// Uodate the __LINKEDIT segment.
segSz := sigOff + sz - int64(linkeditSeg.Offset)
mf.ByteOrder.PutUint64(tmp[:8], uint64(segSz))
- _, err = f.WriteAt(tmp[:8], int64(linkeditOff)+int64(unsafe.Offsetof(macho.Segment64{}.Memsz)))
+ _, err = f.WriteAt(tmp[:8], linkeditOff+int64(unsafe.Offsetof(macho.Segment64{}.Memsz)))
if err != nil {
return err
}
- _, err = f.WriteAt(tmp[:8], int64(linkeditOff)+int64(unsafe.Offsetof(macho.Segment64{}.Filesz)))
+ _, err = f.WriteAt(tmp[:8], linkeditOff+int64(unsafe.Offsetof(macho.Segment64{}.Filesz)))
if err != nil {
return err
}
diff --git a/src/cmd/link/internal/ld/pcln.go b/src/cmd/link/internal/ld/pcln.go
index 9532b33a9b..2b3687c37e 100644
--- a/src/cmd/link/internal/ld/pcln.go
+++ b/src/cmd/link/internal/ld/pcln.go
@@ -216,7 +216,7 @@ func genInlTreeSym(ctxt *Link, cu *sym.CompilationUnit, fi loader.FuncInfo, arch
const size = 16
inlTreeSym.SetUint8(arch, int64(i*size+0), uint8(funcID))
// Bytes 1-3 are unused.
- inlTreeSym.SetUint32(arch, int64(i*size+4), uint32(nameOff))
+ inlTreeSym.SetUint32(arch, int64(i*size+4), nameOff)
inlTreeSym.SetUint32(arch, int64(i*size+8), uint32(call.ParentPC))
inlTreeSym.SetUint32(arch, int64(i*size+12), uint32(startLine))
}
@@ -683,14 +683,14 @@ func writeFuncs(ctxt *Link, sb *loader.SymbolBuilder, funcs []loader.Sym, inlSym
off := int64(startLocations[i])
// entryOff uint32 (offset of func entry PC from textStart)
entryOff := textOff(ctxt, s, textStart)
- off = sb.SetUint32(ctxt.Arch, off, uint32(entryOff))
+ off = sb.SetUint32(ctxt.Arch, off, entryOff)
// nameOff int32
nameOff, ok := nameOffsets[s]
if !ok {
panic("couldn't find function name offset")
}
- off = sb.SetUint32(ctxt.Arch, off, uint32(nameOff))
+ off = sb.SetUint32(ctxt.Arch, off, nameOff)
// args int32
// TODO: Move into funcinfo.
@@ -712,7 +712,7 @@ func writeFuncs(ctxt *Link, sb *loader.SymbolBuilder, funcs []loader.Sym, inlSym
} else {
off += 12
}
- off = sb.SetUint32(ctxt.Arch, off, uint32(numPCData(ldr, s, fi)))
+ off = sb.SetUint32(ctxt.Arch, off, numPCData(ldr, s, fi))
// Store the offset to compilation unit's file table.
cuIdx := ^uint32(0)
diff --git a/src/cmd/link/internal/ld/pe.go b/src/cmd/link/internal/ld/pe.go
index e0186f46b0..f5b7580fda 100644
--- a/src/cmd/link/internal/ld/pe.go
+++ b/src/cmd/link/internal/ld/pe.go
@@ -653,7 +653,7 @@ dwarfLoop:
for i := 0; i < len(Segdwarf.Sections); i++ {
sect := Segdwarf.Sections[i]
si := dwarfp[i]
- if si.secSym() != loader.Sym(sect.Sym) ||
+ if si.secSym() != sect.Sym ||
ldr.SymSect(si.secSym()) != sect {
panic("inconsistency between dwarfp and Segdwarf")
}
@@ -1506,7 +1506,7 @@ func (rt *peBaseRelocTable) addentry(ldr *loader.Loader, s loader.Sym, r *loader
const pageSize = 0x1000
const pageMask = pageSize - 1
- addr := ldr.SymValue(s) + int64(r.Off()) - int64(PEBASE)
+ addr := ldr.SymValue(s) + int64(r.Off()) - PEBASE
page := uint32(addr &^ pageMask)
off := uint32(addr & pageMask)
diff --git a/src/cmd/link/internal/ld/xcoff.go b/src/cmd/link/internal/ld/xcoff.go
index da728e2545..fdc16ac48f 100644
--- a/src/cmd/link/internal/ld/xcoff.go
+++ b/src/cmd/link/internal/ld/xcoff.go
@@ -677,7 +677,7 @@ func (f *xcoffFile) writeSymbolNewFile(ctxt *Link, name string, firstEntry uint6
dwsize = getDwsectCUSize(sect.Name, name)
// .debug_abbrev is common to all packages and not found with the previous function
if sect.Name == ".debug_abbrev" {
- dwsize = uint64(ldr.SymSize(loader.Sym(sect.Sym)))
+ dwsize = uint64(ldr.SymSize(sect.Sym))
}
} else {
@@ -699,7 +699,7 @@ func (f *xcoffFile) writeSymbolNewFile(ctxt *Link, name string, firstEntry uint6
// Dwarf relocations need the symbol number of .dw* symbols.
// It doesn't need to know it for each package, one is enough.
// currSymSrcFile.csectAux == nil means first package.
- ldr.SetSymDynid(loader.Sym(sect.Sym), int32(f.symbolCount))
+ ldr.SetSymDynid(sect.Sym, int32(f.symbolCount))
if sect.Name == ".debug_frame" && ctxt.LinkMode != LinkExternal {
// CIE size must be added to the first package.
@@ -865,7 +865,7 @@ func (f *xcoffFile) writeSymbolFunc(ctxt *Link, x loader.Sym) []xcoffSym {
Xsmtyp: XTY_LD, // label definition (based on C)
Xauxtype: _AUX_CSECT,
}
- a4.Xsmtyp |= uint8(xcoffAlign(ldr, x, TextSym) << 3)
+ a4.Xsmtyp |= xcoffAlign(ldr, x, TextSym) << 3
syms = append(syms, a4)
return syms
@@ -915,7 +915,7 @@ func putaixsym(ctxt *Link, x loader.Sym, t SymbolType) {
Xsmclas: XMC_PR,
Xsmtyp: XTY_SD,
}
- a4.Xsmtyp |= uint8(xcoffAlign(ldr, x, TextSym) << 3)
+ a4.Xsmtyp |= xcoffAlign(ldr, x, TextSym) << 3
syms = append(syms, a4)
}
@@ -976,7 +976,7 @@ func putaixsym(ctxt *Link, x loader.Sym, t SymbolType) {
a4.Xsmtyp |= XTY_CM
}
- a4.Xsmtyp |= uint8(xcoffAlign(ldr, x, t) << 3)
+ a4.Xsmtyp |= xcoffAlign(ldr, x, t) << 3
syms = append(syms, a4)
@@ -1375,7 +1375,7 @@ func (f *xcoffFile) writeLdrScn(ctxt *Link, globalOff uint64) {
/* Symbol table */
for _, s := range f.loaderSymbols {
lds := &XcoffLdSym64{
- Loffset: uint32(stlen + 2),
+ Loffset: stlen + 2,
Lsmtype: s.smtype,
Lsmclas: s.smclas,
}
@@ -1580,7 +1580,7 @@ func xcoffwrite(ctxt *Link) {
func asmbXcoff(ctxt *Link) {
ctxt.Out.SeekSet(0)
fileoff := int64(Segdwarf.Fileoff + Segdwarf.Filelen)
- fileoff = int64(Rnd(int64(fileoff), *FlagRound))
+ fileoff = Rnd(fileoff, *FlagRound)
xfile.sectNameToScnum = make(map[string]int16)
@@ -1693,7 +1693,7 @@ func (f *xcoffFile) emitRelocations(ctxt *Link, fileoff int64) {
if !ldr.AttrReachable(s) {
continue
}
- if ldr.SymValue(s) >= int64(eaddr) {
+ if ldr.SymValue(s) >= eaddr {
break
}
@@ -1755,7 +1755,7 @@ dwarfLoop:
for i := 0; i < len(Segdwarf.Sections); i++ {
sect := Segdwarf.Sections[i]
si := dwarfp[i]
- if si.secSym() != loader.Sym(sect.Sym) ||
+ if si.secSym() != sect.Sym ||
ldr.SymSect(si.secSym()) != sect {
panic("inconsistency between dwarfp and Segdwarf")
}
diff --git a/src/cmd/link/internal/loadelf/ldelf.go b/src/cmd/link/internal/loadelf/ldelf.go
index bb0c22da7e..9434704be4 100644
--- a/src/cmd/link/internal/loadelf/ldelf.go
+++ b/src/cmd/link/internal/loadelf/ldelf.go
@@ -785,12 +785,12 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, f *bio.Reader,
rSym = 0
} else {
var elfsym ElfSym
- if err := readelfsym(l, arch, elfobj, int(symIdx), &elfsym, 0, 0); err != nil {
+ if err := readelfsym(l, arch, elfobj, symIdx, &elfsym, 0, 0); err != nil {
return errorf("malformed elf file: %v", err)
}
elfsym.sym = symbols[symIdx]
if elfsym.sym == 0 {
- return errorf("malformed elf file: %s#%d: reloc of invalid sym #%d %s shndx=%d type=%d", l.SymName(sect.sym), j, int(symIdx), elfsym.name, elfsym.shndx, elfsym.type_)
+ return errorf("malformed elf file: %s#%d: reloc of invalid sym #%d %s shndx=%d type=%d", l.SymName(sect.sym), j, symIdx, elfsym.name, elfsym.shndx, elfsym.type_)
}
rSym = elfsym.sym
@@ -854,7 +854,7 @@ func elfmap(elfobj *ElfObj, sect *ElfSect) (err error) {
}
elfobj.f.MustSeek(int64(uint64(elfobj.base)+sect.off), 0)
- sect.base, sect.readOnlyMem, err = elfobj.f.Slice(uint64(sect.size))
+ sect.base, sect.readOnlyMem, err = elfobj.f.Slice(sect.size)
if err != nil {
return fmt.Errorf("short read: %v", err)
}
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
index 0ed20d1bec..cef17fae78 100644
--- a/src/cmd/link/internal/loader/loader.go
+++ b/src/cmd/link/internal/loader/loader.go
@@ -806,7 +806,7 @@ func (l *Loader) SymVersion(i Sym) int {
return pp.ver
}
r, li := l.toLocal(i)
- return int(abiToVer(r.Sym(li).ABI(), r.version))
+ return abiToVer(r.Sym(li).ABI(), r.version)
}
func (l *Loader) IsFileLocal(i Sym) bool {
@@ -2748,15 +2748,15 @@ func (l *Loader) AssignTextSymbolOrder(libs []*sym.Library, intlibs []bool, exts
// We still need to record its presence in the current
// package, as the trampoline pass expects packages
// are laid out in dependency order.
- lib.DupTextSyms = append(lib.DupTextSyms, sym.LoaderSym(gi))
+ lib.DupTextSyms = append(lib.DupTextSyms, gi)
continue // symbol in different object
}
if dupok {
- lib.DupTextSyms = append(lib.DupTextSyms, sym.LoaderSym(gi))
+ lib.DupTextSyms = append(lib.DupTextSyms, gi)
continue
}
- lib.Textp = append(lib.Textp, sym.LoaderSym(gi))
+ lib.Textp = append(lib.Textp, gi)
}
}
@@ -2769,7 +2769,7 @@ func (l *Loader) AssignTextSymbolOrder(libs []*sym.Library, intlibs []bool, exts
lists := [2][]sym.LoaderSym{lib.Textp, lib.DupTextSyms}
for i, list := range lists {
for _, s := range list {
- sym := Sym(s)
+ sym := s
if !assignedToUnit.Has(sym) {
textp = append(textp, sym)
unit := l.SymUnit(sym)
diff --git a/src/cmd/link/internal/loong64/asm.go b/src/cmd/link/internal/loong64/asm.go
index 6adafd38fc..e7f3fd1d98 100644
--- a/src/cmd/link/internal/loong64/asm.go
+++ b/src/cmd/link/internal/loong64/asm.go
@@ -273,7 +273,7 @@ func adddynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s loade
} else {
ldr.Errorf(s, "unexpected relocation for dynamic symbol %s", ldr.SymName(targ))
}
- rela.AddAddrPlus(target.Arch, targ, int64(r.Add()))
+ rela.AddAddrPlus(target.Arch, targ, r.Add())
return true
}
@@ -496,30 +496,30 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade
pc := ldr.SymValue(s) + int64(r.Off())
t := calculatePCAlignedReloc(r.Type(), ldr.SymAddr(rs)+r.Add(), pc)
if r.Type() == objabi.R_LOONG64_ADDR_LO {
- return int64(val&0xffc003ff | (t << 10)), noExtReloc, isOk
+ return val&0xffc003ff | (t << 10), noExtReloc, isOk
}
- return int64(val&0xfe00001f | (t << 5)), noExtReloc, isOk
+ return val&0xfe00001f | (t << 5), noExtReloc, isOk
case objabi.R_LOONG64_TLS_LE_HI,
objabi.R_LOONG64_TLS_LE_LO:
t := ldr.SymAddr(rs) + r.Add()
if r.Type() == objabi.R_LOONG64_TLS_LE_LO {
- return int64(val&0xffc003ff | ((t & 0xfff) << 10)), noExtReloc, isOk
+ return val&0xffc003ff | ((t & 0xfff) << 10), noExtReloc, isOk
}
- return int64(val&0xfe00001f | (((t) >> 12 << 5) & 0x1ffffe0)), noExtReloc, isOk
+ return val&0xfe00001f | (((t) >> 12 << 5) & 0x1ffffe0), noExtReloc, isOk
case objabi.R_CALLLOONG64,
objabi.R_JMPLOONG64:
pc := ldr.SymValue(s) + int64(r.Off())
t := ldr.SymAddr(rs) + r.Add() - pc
- return int64(val&0xfc000000 | (((t >> 2) & 0xffff) << 10) | (((t >> 2) & 0x3ff0000) >> 16)), noExtReloc, isOk
+ return val&0xfc000000 | (((t >> 2) & 0xffff) << 10) | (((t >> 2) & 0x3ff0000) >> 16), noExtReloc, isOk
case objabi.R_JMP16LOONG64,
objabi.R_JMP21LOONG64:
pc := ldr.SymValue(s) + int64(r.Off())
t := ldr.SymAddr(rs) + r.Add() - pc
if r.Type() == objabi.R_JMP16LOONG64 {
- return int64(val&0xfc0003ff | (((t >> 2) & 0xffff) << 10)), noExtReloc, isOk
+ return val&0xfc0003ff | (((t >> 2) & 0xffff) << 10), noExtReloc, isOk
}
- return int64(val&0xfc0003e0 | (((t >> 2) & 0xffff) << 10) | (((t >> 2) & 0x1f0000) >> 16)), noExtReloc, isOk
+ return val&0xfc0003e0 | (((t >> 2) & 0xffff) << 10) | (((t >> 2) & 0x1f0000) >> 16), noExtReloc, isOk
case objabi.R_LOONG64_TLS_IE_HI,
objabi.R_LOONG64_TLS_IE_LO:
@@ -540,9 +540,9 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade
case objabi.R_LOONG64_ADD64, objabi.R_LOONG64_SUB64:
if r.Type() == objabi.R_LOONG64_ADD64 {
- return int64(val + ldr.SymAddr(rs) + r.Add()), noExtReloc, isOk
+ return val + ldr.SymAddr(rs) + r.Add(), noExtReloc, isOk
}
- return int64(val - (ldr.SymAddr(rs) + r.Add())), noExtReloc, isOk
+ return val - (ldr.SymAddr(rs) + r.Add()), noExtReloc, isOk
}
return val, 0, false
@@ -628,7 +628,7 @@ func trampoline(ctxt *ld.Link, ldr *loader.Loader, ri int, rs, s loader.Sym) {
for i := 0; ; i++ {
oName := ldr.SymName(rs)
name := oName + fmt.Sprintf("%+x-tramp%d", r.Add(), i)
- tramp = ldr.LookupOrCreateSym(name, int(ldr.SymVersion(rs)))
+ tramp = ldr.LookupOrCreateSym(name, ldr.SymVersion(rs))
ldr.SetAttrReachable(tramp, true)
if ldr.SymType(tramp) == sym.SDYNIMPORT {
// don't reuse trampoline defined in other module
diff --git a/src/cmd/link/internal/mips64/asm.go b/src/cmd/link/internal/mips64/asm.go
index e82d986184..a86ded65f2 100644
--- a/src/cmd/link/internal/mips64/asm.go
+++ b/src/cmd/link/internal/mips64/asm.go
@@ -298,9 +298,9 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade
objabi.R_ADDRMIPSU:
t := ldr.SymValue(rs) + r.Add()
if r.Type() == objabi.R_ADDRMIPS {
- return int64(val&0xffff0000 | t&0xffff), noExtReloc, isOk
+ return val&0xffff0000 | t&0xffff, noExtReloc, isOk
}
- return int64(val&0xffff0000 | ((t+1<<15)>>16)&0xffff), noExtReloc, isOk
+ return val&0xffff0000 | ((t+1<<15)>>16)&0xffff, noExtReloc, isOk
case objabi.R_ADDRMIPSTLS:
// thread pointer is at 0x7000 offset from the start of TLS data area
t := ldr.SymValue(rs) + r.Add() - 0x7000
@@ -312,12 +312,12 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade
if t < -32768 || t >= 32678 {
ldr.Errorf(s, "TLS offset out of range %d", t)
}
- return int64(val&0xffff0000 | t&0xffff), noExtReloc, isOk
+ return val&0xffff0000 | t&0xffff, noExtReloc, isOk
case objabi.R_CALLMIPS,
objabi.R_JMPMIPS:
// Low 26 bits = (S + A) >> 2
t := ldr.SymValue(rs) + r.Add()
- return int64(val&0xfc000000 | (t>>2)&^0xfc000000), noExtReloc, isOk
+ return val&0xfc000000 | (t>>2)&^0xfc000000, noExtReloc, isOk
}
return val, 0, false
diff --git a/src/cmd/link/internal/ppc64/asm.go b/src/cmd/link/internal/ppc64/asm.go
index af7cddff7f..5ceab3aa5a 100644
--- a/src/cmd/link/internal/ppc64/asm.go
+++ b/src/cmd/link/internal/ppc64/asm.go
@@ -853,7 +853,7 @@ func addelfdynrel(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, s lo
} else {
ldr.Errorf(s, "unexpected relocation for dynamic symbol %s", ldr.SymName(targ))
}
- rela.AddAddrPlus(target.Arch, targ, int64(r.Add()))
+ rela.AddAddrPlus(target.Arch, targ, r.Add())
// Not mark r done here. So we still apply it statically,
// so in the file content we'll also have the right offset
@@ -1208,7 +1208,7 @@ func trampoline(ctxt *ld.Link, ldr *loader.Loader, ri int, rs, s loader.Sym) {
// Look up the trampoline in case it already exists
- tramp = ldr.LookupOrCreateSym(name, int(ldr.SymVersion(rs)))
+ tramp = ldr.LookupOrCreateSym(name, ldr.SymVersion(rs))
if oName == "runtime.deferreturn" {
ldr.SetIsDeferReturnTramp(tramp, true)
}
diff --git a/src/cmd/link/internal/riscv64/asm.go b/src/cmd/link/internal/riscv64/asm.go
index f856583727..9d69152af0 100644
--- a/src/cmd/link/internal/riscv64/asm.go
+++ b/src/cmd/link/internal/riscv64/asm.go
@@ -497,7 +497,7 @@ func archreloc(target *ld.Target, ldr *loader.Loader, syms *ld.ArchSyms, r loade
}
immMask := int64(riscv.JTypeImmMask)
- val = (val &^ immMask) | int64(imm)
+ val = (val &^ immMask) | imm
return val, 0, true
@@ -719,7 +719,7 @@ func trampoline(ctxt *ld.Link, ldr *loader.Loader, ri int, rs, s loader.Sym) {
if r.Add() != 0 {
name = fmt.Sprintf("%s%+x-tramp%d", oName, r.Add(), i)
}
- tramp = ldr.LookupOrCreateSym(name, int(ldr.SymVersion(rs)))
+ tramp = ldr.LookupOrCreateSym(name, ldr.SymVersion(rs))
ldr.SetAttrReachable(tramp, true)
if ldr.SymType(tramp) == sym.SDYNIMPORT {
// Do not reuse trampoline defined in other module.
@@ -744,7 +744,7 @@ func trampoline(ctxt *ld.Link, ldr *loader.Loader, ri int, rs, s loader.Sym) {
if ldr.SymType(tramp) == 0 {
trampb := ldr.MakeSymbolUpdater(tramp)
ctxt.AddTramp(trampb, ldr.SymType(s))
- genCallTramp(ctxt.Arch, ctxt.LinkMode, ldr, trampb, rs, int64(r.Add()))
+ genCallTramp(ctxt.Arch, ctxt.LinkMode, ldr, trampb, rs, r.Add())
}
sb := ldr.MakeSymbolUpdater(s)
if ldr.SymValue(rs) == 0 {
diff --git a/src/cmd/link/internal/wasm/asm.go b/src/cmd/link/internal/wasm/asm.go
index d03102cc6b..2ddf5b33ba 100644
--- a/src/cmd/link/internal/wasm/asm.go
+++ b/src/cmd/link/internal/wasm/asm.go
@@ -302,11 +302,11 @@ func writeTypeSec(ctxt *ld.Link, types []*wasmFuncType) {
ctxt.Out.WriteByte(0x60) // functype
writeUleb128(ctxt.Out, uint64(len(t.Params)))
for _, v := range t.Params {
- ctxt.Out.WriteByte(byte(v))
+ ctxt.Out.WriteByte(v)
}
writeUleb128(ctxt.Out, uint64(len(t.Results)))
for _, v := range t.Results {
- ctxt.Out.WriteByte(byte(v))
+ ctxt.Out.WriteByte(v)
}
}