aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/api/main_test.go4
-rw-r--r--src/cmd/asm/internal/asm/endtoend_test.go2
-rw-r--r--src/cmd/asm/internal/lex/input.go2
-rw-r--r--src/cmd/cgo/ast.go2
-rw-r--r--src/cmd/cgo/gcc.go6
-rw-r--r--src/cmd/cgo/main.go2
-rw-r--r--src/cmd/compile/internal/ssa/loopbce.go2
-rw-r--r--src/cmd/compile/internal/ssa/regalloc.go10
-rw-r--r--src/cmd/compile/internal/ssa/schedule.go2
-rw-r--r--src/cmd/compile/internal/ssagen/ssa.go4
-rw-r--r--src/cmd/compile/internal/test/ssa_test.go2
-rw-r--r--src/cmd/dist/build.go6
-rw-r--r--src/cmd/doc/pkg.go2
-rw-r--r--src/cmd/fix/typecheck.go2
-rw-r--r--src/cmd/go/internal/base/path.go2
-rw-r--r--src/cmd/go/internal/imports/scan.go2
-rw-r--r--src/cmd/go/internal/load/flag_test.go2
-rw-r--r--src/cmd/go/internal/load/pkg.go2
-rw-r--r--src/cmd/go/internal/load/test.go3
-rw-r--r--src/cmd/go/internal/mvs/mvs.go2
-rw-r--r--src/cmd/go/internal/search/search.go2
-rw-r--r--src/cmd/go/internal/test/test.go2
-rw-r--r--src/cmd/go/internal/work/action.go2
-rw-r--r--src/cmd/go/internal/work/build.go2
-rw-r--r--src/cmd/go/internal/work/exec.go13
-rw-r--r--src/cmd/go/internal/work/gc.go4
-rw-r--r--src/cmd/go/internal/work/gccgo.go4
-rw-r--r--src/cmd/internal/edit/edit.go2
-rw-r--r--src/cmd/internal/objfile/elf.go2
-rw-r--r--src/cmd/internal/objfile/macho.go2
-rw-r--r--src/cmd/internal/objfile/pe.go4
-rw-r--r--src/cmd/internal/objfile/plan9obj.go4
-rw-r--r--src/cmd/internal/objfile/xcoff.go2
-rw-r--r--src/cmd/link/internal/ld/lib.go5
-rw-r--r--src/cmd/link/internal/ld/macho_combine_dwarf.go2
-rw-r--r--src/cmd/link/internal/ld/xcoff.go8
-rw-r--r--src/cmd/link/internal/loadxcoff/ldxcoff.go4
-rw-r--r--src/cmd/trace/annotations.go2
-rw-r--r--src/cmd/trace/annotations_test.go2
-rw-r--r--src/cmd/trace/goroutines.go4
-rw-r--r--src/cmd/vendor/golang.org/x/mod/modfile/rule.go2
-rw-r--r--src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go2
42 files changed, 73 insertions, 64 deletions
diff --git a/src/cmd/api/main_test.go b/src/cmd/api/main_test.go
index 7985055b5c..1363ade1b9 100644
--- a/src/cmd/api/main_test.go
+++ b/src/cmd/api/main_test.go
@@ -168,7 +168,7 @@ func Check(t *testing.T) {
bw := bufio.NewWriter(os.Stdout)
defer bw.Flush()
- var required []string
+ var required = make([]string, 0, len(checkFiles))
for _, file := range checkFiles {
required = append(required, fileFeatures(file, needApproval(file))...)
}
@@ -657,7 +657,7 @@ func (w *Walker) importFrom(fromPath, fromDir string, mode types.ImportMode) (*a
filenames := append(append([]string{}, info.GoFiles...), info.CgoFiles...)
// Parse package files.
- var files []*ast.File
+ var files = make([]*ast.File, 0, len(filenames))
for _, file := range filenames {
f, err := w.parseFile(dir, file)
if err != nil {
diff --git a/src/cmd/asm/internal/asm/endtoend_test.go b/src/cmd/asm/internal/asm/endtoend_test.go
index 6e1aa1cd95..5981f9ed2c 100644
--- a/src/cmd/asm/internal/asm/endtoend_test.go
+++ b/src/cmd/asm/internal/asm/endtoend_test.go
@@ -363,7 +363,7 @@ func testErrors(t *testing.T, goarch, file string, flags ...string) {
}
delete(errors, fileline)
}
- var extra []string
+ extra := make([]string, 0, len(errors))
for key := range errors {
extra = append(extra, key)
}
diff --git a/src/cmd/asm/internal/lex/input.go b/src/cmd/asm/internal/lex/input.go
index da4ebe6d6e..d9bbd90d82 100644
--- a/src/cmd/asm/internal/lex/input.go
+++ b/src/cmd/asm/internal/lex/input.go
@@ -309,7 +309,7 @@ func (in *Input) invokeMacro(macro *Macro) {
return
}
actuals := in.argsFor(macro)
- var tokens []Token
+ tokens := make([]Token, 0, len(macro.tokens))
for _, tok := range macro.tokens {
if tok.ScanToken != scanner.Ident {
tokens = append(tokens, tok)
diff --git a/src/cmd/cgo/ast.go b/src/cmd/cgo/ast.go
index 3cbbeafdca..861479db7a 100644
--- a/src/cmd/cgo/ast.go
+++ b/src/cmd/cgo/ast.go
@@ -181,7 +181,7 @@ func (f *File) ParseGo(abspath string, src []byte) {
// Like ast.CommentGroup's Text method but preserves
// leading blank lines, so that line numbers line up.
func commentText(g *ast.CommentGroup) string {
- var pieces []string
+ pieces := make([]string, 0, len(g.List))
for _, com := range g.List {
c := com.Text
// Remove comment markers.
diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go
index 6e7556de96..e5366435cc 100644
--- a/src/cmd/cgo/gcc.go
+++ b/src/cmd/cgo/gcc.go
@@ -281,9 +281,11 @@ func (p *Package) loadDefines(f *File) {
func (p *Package) guessKinds(f *File) []*Name {
// Determine kinds for names we already know about,
// like #defines or 'struct foo', before bothering with gcc.
- var names, needType []*Name
+ keys := nameKeys(f.Name)
+ names := make([]*Name, 0, len(keys))
+ needType := make([]*Name, 0, len(keys))
optional := map[*Name]bool{}
- for _, key := range nameKeys(f.Name) {
+ for _, key := range keys {
n := f.Name[key]
// If we've already found this name as a #define
// and we can translate it as a constant value, do so.
diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go
index fce2671c2c..111ccddffc 100644
--- a/src/cmd/cgo/main.go
+++ b/src/cmd/cgo/main.go
@@ -80,7 +80,7 @@ func (f *File) offset(p token.Pos) int {
}
func nameKeys(m map[string]*Name) []string {
- var ks []string
+ ks := make([]string, 0, len(m))
for k := range m {
ks = append(ks, k)
}
diff --git a/src/cmd/compile/internal/ssa/loopbce.go b/src/cmd/compile/internal/ssa/loopbce.go
index dd1f39dbef..931dc60af7 100644
--- a/src/cmd/compile/internal/ssa/loopbce.go
+++ b/src/cmd/compile/internal/ssa/loopbce.go
@@ -83,7 +83,7 @@ func parseIndVar(ind *Value) (min, inc, nxt *Value) {
//
// exit_loop:
func findIndVar(f *Func) []indVar {
- var iv []indVar
+ iv := make([]indVar, 0, len(f.Blocks))
sdom := f.Sdom()
for _, b := range f.Blocks {
diff --git a/src/cmd/compile/internal/ssa/regalloc.go b/src/cmd/compile/internal/ssa/regalloc.go
index 2325b9ee45..e65652c12b 100644
--- a/src/cmd/compile/internal/ssa/regalloc.go
+++ b/src/cmd/compile/internal/ssa/regalloc.go
@@ -892,10 +892,10 @@ var tmpVal Value
func (s *regAllocState) regalloc(f *Func) {
regValLiveSet := f.newSparseSet(f.NumValues()) // set of values that may be live in register
defer f.retSparseSet(regValLiveSet)
- var oldSched []*Value
- var phis []*Value
- var phiRegs []register
- var args []*Value
+ oldSched := make([]*Value, 0, len(s.visitOrder))
+ phis := make([]*Value, 0, len(s.visitOrder))
+ phiRegs := make([]register, 0, len(s.visitOrder))
+ args := make([]*Value, 0, len(s.visitOrder))
// Data structure used for computing desired registers.
var desired desiredState
@@ -2082,7 +2082,7 @@ func (s *regAllocState) placeSpills() {
}
// Insert spill instructions into the block schedules.
- var oldSched []*Value
+ oldSched := make([]*Value, 0, len(s.visitOrder))
for _, b := range s.visitOrder {
nfirst := 0
for _, v := range b.Values {
diff --git a/src/cmd/compile/internal/ssa/schedule.go b/src/cmd/compile/internal/ssa/schedule.go
index fb38f40d63..d67d1d5a0b 100644
--- a/src/cmd/compile/internal/ssa/schedule.go
+++ b/src/cmd/compile/internal/ssa/schedule.go
@@ -440,7 +440,7 @@ func storeOrder(values []*Value, sset *sparseSet, storeNumber []int32) []*Value
}
w = w.MemoryArg()
}
- var stack []*Value
+ stack := make([]*Value, 0, len(values))
for _, v := range values {
if sset.contains(v.ID) {
// in sset means v is a store, or already pushed to stack, or already assigned a store number
diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go
index df933ec1cf..90388d2b0f 100644
--- a/src/cmd/compile/internal/ssagen/ssa.go
+++ b/src/cmd/compile/internal/ssagen/ssa.go
@@ -753,7 +753,7 @@ func dumpSourcesColumn(writer *ssa.HTMLWriter, fn *ir.Func) {
}
// Read sources of inlined functions.
- var inlFns []*ssa.FuncLines
+ inlFns := make([]*ssa.FuncLines, 0, len(ssaDumpInlined))
for _, fi := range ssaDumpInlined {
elno := fi.Endlineno
fname := base.Ctxt.PosTable.Pos(fi.Pos()).Filename()
@@ -4152,7 +4152,7 @@ type intrinsicKey struct {
func InitTables() {
intrinsics = map[intrinsicKey]intrinsicBuilder{}
- var all []*sys.Arch
+ all := make([]*sys.Arch, 0, len(sys.Archs))
var p4 []*sys.Arch
var p8 []*sys.Arch
var lwatomics []*sys.Arch
diff --git a/src/cmd/compile/internal/test/ssa_test.go b/src/cmd/compile/internal/test/ssa_test.go
index 7f2faa1140..fb397820c7 100644
--- a/src/cmd/compile/internal/test/ssa_test.go
+++ b/src/cmd/compile/internal/test/ssa_test.go
@@ -76,7 +76,6 @@ func TestCode(t *testing.T) {
tmpdir := t.TempDir()
// Find all the test functions (and the files containing them).
- var srcs []string // files containing Test functions
type test struct {
name string // TestFoo
usesFloat bool // might use float operations
@@ -86,6 +85,7 @@ func TestCode(t *testing.T) {
if err != nil {
t.Fatalf("can't read testdata directory: %v", err)
}
+ srcs := make([]string, 0, len(files)) // files containing Test functions
for _, f := range files {
if !strings.HasSuffix(f.Name(), "_test.go") {
continue
diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
index 96199bcbfa..f778c85475 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
@@ -707,7 +707,7 @@ func runInstall(pkg string, ch chan struct{}) {
// Start final link command line.
// Note: code below knows that link.p[targ] is the target.
var (
- link []string
+ link = make([]string, 0, 1)
targ int
ispackcmd bool
)
@@ -1914,7 +1914,7 @@ func cmdlist() {
brokenFlag := flag.Bool("broken", false, "include broken ports")
xflagparse(0)
- var plats []string
+ plats := make([]string, 0, len(cgoEnabled))
for p := range cgoEnabled {
if broken[p] && !*brokenFlag {
continue
@@ -1937,7 +1937,7 @@ func cmdlist() {
FirstClass bool
Broken bool `json:",omitempty"`
}
- var results []jsonResult
+ results := make([]jsonResult, 0, len(plats))
for _, p := range plats {
fields := strings.Split(p, "/")
results = append(results, jsonResult{
diff --git a/src/cmd/doc/pkg.go b/src/cmd/doc/pkg.go
index a21d8a4688..bef480ab92 100644
--- a/src/cmd/doc/pkg.go
+++ b/src/cmd/doc/pkg.go
@@ -443,7 +443,7 @@ func (pkg *Package) formatTypeParams(list *ast.FieldList, depth int) string {
// oneLineField returns a one-line summary of the field.
func (pkg *Package) oneLineField(field *ast.Field, depth int) string {
- var names []string
+ names := make([]string, 0, len(field.Names))
for _, name := range field.Names {
names = append(names, name.Name)
}
diff --git a/src/cmd/fix/typecheck.go b/src/cmd/fix/typecheck.go
index b115987390..173de52e90 100644
--- a/src/cmd/fix/typecheck.go
+++ b/src/cmd/fix/typecheck.go
@@ -303,7 +303,7 @@ func typecheck(cfg *TypeConfig, f *ast.File) (typeof map[any]string, assign map[
var reportCgoError func(err error)
func makeExprList(a []*ast.Ident) []ast.Expr {
- var b []ast.Expr
+ b := make([]ast.Expr, 0, len(a))
for _, x := range a {
b = append(b, x)
}
diff --git a/src/cmd/go/internal/base/path.go b/src/cmd/go/internal/base/path.go
index 64f213b408..797cb37dd0 100644
--- a/src/cmd/go/internal/base/path.go
+++ b/src/cmd/go/internal/base/path.go
@@ -46,7 +46,7 @@ func ShortPath(path string) string {
// RelPaths returns a copy of paths with absolute paths
// made relative to the current directory if they would be shorter.
func RelPaths(paths []string) []string {
- var out []string
+ out := make([]string, 0, len(paths))
for _, p := range paths {
rel, err := filepath.Rel(Cwd(), p)
if err == nil && len(rel) < len(p) {
diff --git a/src/cmd/go/internal/imports/scan.go b/src/cmd/go/internal/imports/scan.go
index ee11a8708b..e18f28c351 100644
--- a/src/cmd/go/internal/imports/scan.go
+++ b/src/cmd/go/internal/imports/scan.go
@@ -98,7 +98,7 @@ Files:
var ErrNoGo = fmt.Errorf("no Go source files")
func keys(m map[string]bool) []string {
- var list []string
+ list := make([]string, 0, len(m))
for k := range m {
list = append(list, k)
}
diff --git a/src/cmd/go/internal/load/flag_test.go b/src/cmd/go/internal/load/flag_test.go
index d3223e12d5..f0d970421d 100644
--- a/src/cmd/go/internal/load/flag_test.go
+++ b/src/cmd/go/internal/load/flag_test.go
@@ -95,7 +95,7 @@ var ppfTests = []ppfTest{
}
func ppfDirTest(pattern string, nmatch int, dirs ...string) ppfTest {
- var pkgs []ppfTestPackage
+ pkgs := make([]ppfTestPackage, 0, len(dirs))
for i, d := range dirs {
flags := []string{}
if i < nmatch {
diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go
index 1549800afb..b06b597334 100644
--- a/src/cmd/go/internal/load/pkg.go
+++ b/src/cmd/go/internal/load/pkg.go
@@ -3180,7 +3180,7 @@ func GoFilesPackage(ctx context.Context, opts PackageOpts, gofiles []string) *Pa
// to make it look like this is a standard package or
// command directory. So that local imports resolve
// consistently, the files must all be in the same directory.
- var dirent []fs.FileInfo
+ dirent := make([]os.FileInfo, 0, len(gofiles))
var dir string
for _, file := range gofiles {
fi, err := fsys.Stat(file)
diff --git a/src/cmd/go/internal/load/test.go b/src/cmd/go/internal/load/test.go
index d09ababfdd..a35632b2bd 100644
--- a/src/cmd/go/internal/load/test.go
+++ b/src/cmd/go/internal/load/test.go
@@ -109,7 +109,7 @@ func TestPackagesAndErrors(ctx context.Context, done func(), opts PackageOpts, p
pre.preloadImports(ctx, opts, allImports, p.Internal.Build)
var ptestErr, pxtestErr *PackageError
- var imports, ximports []*Package
+ imports := make([]*Package, 0, len(p.TestImports))
var stk ImportStack
var testEmbed, xtestEmbed map[string][]string
var incomplete bool
@@ -144,6 +144,7 @@ func TestPackagesAndErrors(ctx context.Context, done func(), opts PackageOpts, p
pxtestNeedsPtest := false
var pxtestIncomplete bool
rawXTestImports := str.StringList(p.XTestImports)
+ ximports := make([]*Package, 0, len(p.XTestImports))
for i, path := range p.XTestImports {
p1, err := loadImport(ctx, opts, pre, path, p.Dir, p, &stk, p.Internal.Build.XTestImportPos[path], ResolveImport)
if err != nil && pxtestErr == nil {
diff --git a/src/cmd/go/internal/mvs/mvs.go b/src/cmd/go/internal/mvs/mvs.go
index 468a985927..f30677b3b6 100644
--- a/src/cmd/go/internal/mvs/mvs.go
+++ b/src/cmd/go/internal/mvs/mvs.go
@@ -242,7 +242,7 @@ func Req(mainModule module.Version, base []string, reqs Reqs) ([]module.Version,
return nil
}
// First walk the base modules that must be listed.
- var min []module.Version
+ min := make([]module.Version, 0, len(base))
haveBase := map[string]bool{}
for _, path := range base {
if haveBase[path] {
diff --git a/src/cmd/go/internal/search/search.go b/src/cmd/go/internal/search/search.go
index 9f216d5756..e5949d318d 100644
--- a/src/cmd/go/internal/search/search.go
+++ b/src/cmd/go/internal/search/search.go
@@ -399,7 +399,7 @@ func CleanPatterns(patterns []string) []string {
if len(patterns) == 0 {
return []string{"."}
}
- var out []string
+ out := make([]string, 0, len(patterns))
for _, a := range patterns {
var p, v string
if build.IsLocalImport(a) || filepath.IsAbs(a) {
diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go
index 8a40547f2e..99d1c0a6f8 100644
--- a/src/cmd/go/internal/test/test.go
+++ b/src/cmd/go/internal/test/test.go
@@ -943,7 +943,7 @@ func runTest(ctx context.Context, cmd *base.Command, args []string) {
}
// Collect all the packages imported by the packages being tested.
- allImports := make(map[*load.Package]bool)
+ allImports := make(map[*load.Package]bool, len(pkgs))
for _, p := range pkgs {
if p.Error != nil && p.Error.IsImportCycle {
continue
diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go
index a59072e591..b4f96988ab 100644
--- a/src/cmd/go/internal/work/action.go
+++ b/src/cmd/go/internal/work/action.go
@@ -208,7 +208,7 @@ func actionGraphJSON(a *Action) string {
}
}
- var list []*actionJSON
+ list := make([]*actionJSON, 0, len(workq))
for id, a := range workq {
if a.json == nil {
a.json = &actionJSON{
diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
index 408edb5119..60034f3071 100644
--- a/src/cmd/go/internal/work/build.go
+++ b/src/cmd/go/internal/work/build.go
@@ -729,7 +729,7 @@ func runInstall(ctx context.Context, cmd *base.Command, args []string) {
// omitTestOnly returns pkgs with test-only packages removed.
func omitTestOnly(pkgs []*load.Package) []*load.Package {
- var list []*load.Package
+ list := make([]*load.Package, 0, len(pkgs))
for _, p := range pkgs {
if len(p.GoFiles)+len(p.CgoFiles) == 0 && !p.Internal.CmdlinePkgLiteral {
// Package has no source files,
diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
index f6aa2b3534..3200dd76a5 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
@@ -1069,8 +1069,9 @@ func (b *Builder) loadCachedVet(a *Action) error {
if err != nil {
return fmt.Errorf("reading srcfiles list: %w", err)
}
- var srcfiles []string
- for _, name := range strings.Split(string(list), "\n") {
+ listSplits := strings.Split(string(list), "\n")
+ srcfiles := make([]string, 0, len(listSplits))
+ for _, name := range listSplits {
if name == "" { // end of list
continue
}
@@ -1093,8 +1094,12 @@ func (b *Builder) loadCachedCompiledGoFiles(a *Action) error {
if err != nil {
return fmt.Errorf("reading srcfiles list: %w", err)
}
- var gofiles []string
- for _, name := range strings.Split(string(list), "\n") {
+ var (
+ listSplits = strings.Split(string(list), "\n")
+ gofiles = make([]string, 0, len(listSplits))
+ name string
+ )
+ for _, name = range listSplits {
if name == "" { // end of list
continue
} else if !strings.HasSuffix(name, ".go") {
diff --git a/src/cmd/go/internal/work/gc.go b/src/cmd/go/internal/work/gc.go
index 09ea8259e0..541392ecc0 100644
--- a/src/cmd/go/internal/work/gc.go
+++ b/src/cmd/go/internal/work/gc.go
@@ -387,7 +387,7 @@ func (gcToolchain) asm(b *Builder, a *Action, sfiles []string) ([]string, error)
p := a.Package
args := asmArgs(a, p)
- var ofiles []string
+ ofiles := make([]string, 0, len(sfiles))
for _, sfile := range sfiles {
overlayPath, _ := fsys.OverlayPath(mkAbs(p.Dir, sfile))
ofile := a.Objdir + sfile[:len(sfile)-len(".s")] + ".o"
@@ -463,7 +463,7 @@ func toolVerify(a *Action, b *Builder, p *load.Package, newTool string, ofile st
}
func (gcToolchain) pack(b *Builder, a *Action, afile string, ofiles []string) error {
- var absOfiles []string
+ absOfiles := make([]string, 0, len(ofiles))
for _, f := range ofiles {
absOfiles = append(absOfiles, mkAbs(a.Objdir, f))
}
diff --git a/src/cmd/go/internal/work/gccgo.go b/src/cmd/go/internal/work/gccgo.go
index 2dce9f1ace..e07f866739 100644
--- a/src/cmd/go/internal/work/gccgo.go
+++ b/src/cmd/go/internal/work/gccgo.go
@@ -194,7 +194,7 @@ func buildImportcfgSymlinks(sh *Shell, root string, importcfg []byte) error {
func (tools gccgoToolchain) asm(b *Builder, a *Action, sfiles []string) ([]string, error) {
p := a.Package
- var ofiles []string
+ ofiles := make([]string, 0, len(sfiles))
for _, sfile := range sfiles {
base := filepath.Base(sfile)
ofile := a.Objdir + base[:len(base)-len(".s")] + ".o"
@@ -229,7 +229,7 @@ func (tools gccgoToolchain) pack(b *Builder, a *Action, afile string, ofiles []s
p := a.Package
sh := b.Shell(a)
objdir := a.Objdir
- var absOfiles []string
+ absOfiles := make([]string, 0, len(ofiles))
for _, f := range ofiles {
absOfiles = append(absOfiles, mkAbs(objdir, f))
}
diff --git a/src/cmd/internal/edit/edit.go b/src/cmd/internal/edit/edit.go
index 2d470f4c8a..57c0820eb1 100644
--- a/src/cmd/internal/edit/edit.go
+++ b/src/cmd/internal/edit/edit.go
@@ -71,7 +71,7 @@ func (b *Buffer) Bytes() []byte {
// to be applied before a replacement of the text at [x, y).
sort.Stable(b.q)
- var new []byte
+ new := make([]byte, 0, len(b.q))
offset := 0
for i, e := range b.q {
if e.start < offset {
diff --git a/src/cmd/internal/objfile/elf.go b/src/cmd/internal/objfile/elf.go
index f25e4a65d6..e12e273684 100644
--- a/src/cmd/internal/objfile/elf.go
+++ b/src/cmd/internal/objfile/elf.go
@@ -32,7 +32,7 @@ func (f *elfFile) symbols() ([]Sym, error) {
return nil, err
}
- var syms []Sym
+ syms := make([]Sym, 0, len(elfSyms))
for _, s := range elfSyms {
sym := Sym{Addr: s.Value, Name: s.Name, Size: int64(s.Size), Code: '?'}
switch s.Section {
diff --git a/src/cmd/internal/objfile/macho.go b/src/cmd/internal/objfile/macho.go
index c92497527a..cdea87d9a9 100644
--- a/src/cmd/internal/objfile/macho.go
+++ b/src/cmd/internal/objfile/macho.go
@@ -44,7 +44,7 @@ func (f *machoFile) symbols() ([]Sym, error) {
}
sort.Sort(uint64s(addrs))
- var syms []Sym
+ syms := make([]Sym, 0, len(f.macho.Symtab.Syms))
for _, s := range f.macho.Symtab.Syms {
if s.Type&stabTypeMask != 0 {
// Skip stab debug info.
diff --git a/src/cmd/internal/objfile/pe.go b/src/cmd/internal/objfile/pe.go
index 4c4be1e6b7..df7e5f8cea 100644
--- a/src/cmd/internal/objfile/pe.go
+++ b/src/cmd/internal/objfile/pe.go
@@ -29,11 +29,11 @@ func openPE(r io.ReaderAt) (rawFile, error) {
func (f *peFile) symbols() ([]Sym, error) {
// Build sorted list of addresses of all symbols.
// We infer the size of a symbol by looking at where the next symbol begins.
- var addrs []uint64
+ addrs := make([]uint64, 0, len(f.pe.Symbols))
imageBase, _ := f.imageBase()
- var syms []Sym
+ syms := make([]Sym, 0, len(f.pe.Symbols))
for _, s := range f.pe.Symbols {
const (
N_UNDEF = 0 // An undefined (extern) symbol
diff --git a/src/cmd/internal/objfile/plan9obj.go b/src/cmd/internal/objfile/plan9obj.go
index da0b345f53..86d052ec4d 100644
--- a/src/cmd/internal/objfile/plan9obj.go
+++ b/src/cmd/internal/objfile/plan9obj.go
@@ -44,7 +44,7 @@ func (f *plan9File) symbols() ([]Sym, error) {
// Build sorted list of addresses of all symbols.
// We infer the size of a symbol by looking at where the next symbol begins.
- var addrs []uint64
+ addrs := make([]uint64, 0, len(plan9Syms))
for _, s := range plan9Syms {
if !validSymType[s.Type] {
continue
@@ -53,7 +53,7 @@ func (f *plan9File) symbols() ([]Sym, error) {
}
sort.Sort(uint64s(addrs))
- var syms []Sym
+ syms := make([]Sym, 0, len(plan9Syms))
for _, s := range plan9Syms {
if !validSymType[s.Type] {
diff --git a/src/cmd/internal/objfile/xcoff.go b/src/cmd/internal/objfile/xcoff.go
index d6df4db8f0..fc32fc7c19 100644
--- a/src/cmd/internal/objfile/xcoff.go
+++ b/src/cmd/internal/objfile/xcoff.go
@@ -27,7 +27,7 @@ func openXcoff(r io.ReaderAt) (rawFile, error) {
}
func (f *xcoffFile) symbols() ([]Sym, error) {
- var syms []Sym
+ syms := make([]Sym, 0, len(f.xcoff.Symbols))
for _, s := range f.xcoff.Symbols {
const (
N_UNDEF = 0 // An undefined (extern) symbol
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
index 0219beeb10..0db830e2c8 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
@@ -2528,8 +2528,9 @@ func ldshlibsyms(ctxt *Link, shlib string) {
Errorf(nil, "cannot read dep list from shared library %s: %v", libpath, err)
return
}
- var deps []string
- for _, dep := range strings.Split(string(depsbytes), "\n") {
+ depsSplit := strings.Split(string(depsbytes), "\n")
+ deps := make([]string, 0, len(depsSplit))
+ for _, dep := range depsSplit {
if dep == "" {
continue
}
diff --git a/src/cmd/link/internal/ld/macho_combine_dwarf.go b/src/cmd/link/internal/ld/macho_combine_dwarf.go
index 2e8bfcdbed..4fb3465fe8 100644
--- a/src/cmd/link/internal/ld/macho_combine_dwarf.go
+++ b/src/cmd/link/internal/ld/macho_combine_dwarf.go
@@ -256,7 +256,7 @@ func machoCompressSections(ctxt *Link, dwarfm *macho.File) ([]*macho.Section, []
}
dwarfseg := dwarfm.Segment("__DWARF")
- var sects []*macho.Section
+ sects := make([]*macho.Section, 0, len(dwarfm.Sections))
var buf bytes.Buffer
for _, sect := range dwarfm.Sections {
diff --git a/src/cmd/link/internal/ld/xcoff.go b/src/cmd/link/internal/ld/xcoff.go
index d915ab393b..1ddd3a630b 100644
--- a/src/cmd/link/internal/ld/xcoff.go
+++ b/src/cmd/link/internal/ld/xcoff.go
@@ -1355,10 +1355,10 @@ func Loaderblk(ctxt *Link, off uint64) {
}
func (f *xcoffFile) writeLdrScn(ctxt *Link, globalOff uint64) {
- var symtab []*XcoffLdSym64
- var strtab []*XcoffLdStr64
- var importtab []*XcoffLdImportFile64
- var reloctab []*XcoffLdRel64
+ symtab := make([]*XcoffLdSym64, 0, len(f.loaderSymbols))
+ strtab := make([]*XcoffLdStr64, 0, len(f.loaderSymbols))
+ importtab := make([]*XcoffLdImportFile64, 0, len(f.dynLibraries))
+ reloctab := make([]*XcoffLdRel64, 0, len(f.loaderReloc))
var dynimpreloc []*XcoffLdRel64
// As the string table is updated in any loader subsection,
diff --git a/src/cmd/link/internal/loadxcoff/ldxcoff.go b/src/cmd/link/internal/loadxcoff/ldxcoff.go
index 29d162596a..50b472047a 100644
--- a/src/cmd/link/internal/loadxcoff/ldxcoff.go
+++ b/src/cmd/link/internal/loadxcoff/ldxcoff.go
@@ -46,14 +46,14 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read
return nil, fmt.Errorf("loadxcoff: %v: %v", pn, fmt.Sprintf(str, args...))
}
- var ldSections []*ldSection
-
f, err := xcoff.NewFile((*xcoffBiobuf)(input))
if err != nil {
return nil, err
}
defer f.Close()
+ ldSections := make([]*ldSection, 0, len(f.Sections))
+
for _, sect := range f.Sections {
//only text, data and bss section
if sect.Type < xcoff.STYP_TEXT || sect.Type > xcoff.STYP_BSS {
diff --git a/src/cmd/trace/annotations.go b/src/cmd/trace/annotations.go
index df194a7598..bc586cb551 100644
--- a/src/cmd/trace/annotations.go
+++ b/src/cmd/trace/annotations.go
@@ -194,7 +194,7 @@ func httpUserTask(w http.ResponseWriter, r *http.Request) {
base := time.Duration(firstTimestamp()) * time.Nanosecond // trace start
- var data []entry
+ data := make([]entry, 0, len(tasks))
for _, task := range tasks {
if !filter.match(task) {
diff --git a/src/cmd/trace/annotations_test.go b/src/cmd/trace/annotations_test.go
index 36d3ec9d6d..8707cd5058 100644
--- a/src/cmd/trace/annotations_test.go
+++ b/src/cmd/trace/annotations_test.go
@@ -149,7 +149,7 @@ func TestAnalyzeAnnotations(t *testing.T) {
"task0.region1",
"task0.region2",
}
- var gotRegions []string
+ gotRegions := make([]string, 0, len(res.regions))
for regionID := range res.regions {
gotRegions = append(gotRegions, regionID.Type)
}
diff --git a/src/cmd/trace/goroutines.go b/src/cmd/trace/goroutines.go
index 28eace82fa..ede7604056 100644
--- a/src/cmd/trace/goroutines.go
+++ b/src/cmd/trace/goroutines.go
@@ -61,7 +61,7 @@ func httpGoroutines(w http.ResponseWriter, r *http.Request) {
gs1.ExecTime += g.ExecTime
gss[g.PC] = gs1
}
- var glist []gtype
+ glist := make([]gtype, 0, len(gss))
for k, v := range gss {
v.ID = k
// If goroutine didn't run during the trace (no sampled PC),
@@ -107,7 +107,7 @@ func httpGoroutine(w http.ResponseWriter, r *http.Request) {
}
analyzeGoroutines(events)
var (
- glist []*trace.GDesc
+ glist = make([]*trace.GDesc, 0, len(gs))
name string
totalExecTime, execTime int64
maxTotalTime int64
diff --git a/src/cmd/vendor/golang.org/x/mod/modfile/rule.go b/src/cmd/vendor/golang.org/x/mod/modfile/rule.go
index 35fd1f534c..cc91a8d430 100644
--- a/src/cmd/vendor/golang.org/x/mod/modfile/rule.go
+++ b/src/cmd/vendor/golang.org/x/mod/modfile/rule.go
@@ -1549,7 +1549,7 @@ func removeDups(syntax *FileSyntax, exclude *[]*Exclude, replace *[]*Replace) {
// Duplicate require and retract directives are not removed.
// Drop killed statements from the syntax tree.
- var stmts []Expr
+ stmts := make([]Expr, 0, len(syntax.Stmt))
for _, stmt := range syntax.Stmt {
switch stmt := stmt.(type) {
case *Line:
diff --git a/src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go b/src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go
index 51ec4db873..7cd05740db 100644
--- a/src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go
+++ b/src/cmd/vendor/golang.org/x/mod/sumdb/dirhash/hash.go
@@ -118,7 +118,7 @@ func HashZip(zipfile string, hash Hash) (string, error) {
return "", err
}
defer z.Close()
- var files []string
+ files := make([]string, 0, len(z.File))
zfiles := make(map[string]*zip.File)
for _, file := range z.File {
files = append(files, file.Name)