diff --git a/src/cmd/link/internal/ld/go.go b/src/cmd/link/internal/ld/go.go index ef73924914..a2db0bf655 100644 --- a/src/cmd/link/internal/ld/go.go +++ b/src/cmd/link/internal/ld/go.go @@ -50,11 +50,7 @@ func ldpkg(ctxt *Link, f *bio.Reader, lib *sym.Library, length int64, filename s // process header lines for data != "" { var line string - if i := strings.Index(data, "\n"); i >= 0 { - line, data = data[:i], data[i+1:] - } else { - line, data = data, "" - } + line, data, _ = strings.Cut(data, "\n") if line == "main" { lib.Main = true } @@ -141,8 +137,8 @@ func setCgoAttr(ctxt *Link, file string, pkg string, directives [][]string, host } q := "" - if i := strings.Index(remote, "#"); i >= 0 { - remote, q = remote[:i], remote[i+1:] + if before, after, found := strings.Cut(remote, "#"); found { + remote, q = before, after } s := l.LookupOrCreateSym(local, 0) st := l.SymType(s) diff --git a/src/cmd/link/internal/ld/ld.go b/src/cmd/link/internal/ld/ld.go index d416571653..77fde0b41d 100644 --- a/src/cmd/link/internal/ld/ld.go +++ b/src/cmd/link/internal/ld/ld.go @@ -62,15 +62,13 @@ func (ctxt *Link) readImportCfg(file string) { continue } - var verb, args string - if i := strings.Index(line, " "); i < 0 { - verb = line - } else { - verb, args = line[:i], strings.TrimSpace(line[i+1:]) + verb, args, found := strings.Cut(line, " ") + if found { + args = strings.TrimSpace(args) } - var before, after string - if i := strings.Index(args, "="); i >= 0 { - before, after = args[:i], args[i+1:] + before, after, exist := strings.Cut(args, "=") + if !exist { + before = "" } switch verb { default: