From: Daniel Martí Date: Sun, 24 Dec 2017 16:50:28 +0000 (+0000) Subject: cmd/compile: print usage to stderr for consistency X-Git-Tag: go1.11beta1~1677 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7ddd467ef335f9ea2347bb9c2628091568b3370f;p=gostls13.git cmd/compile: print usage to stderr for consistency All the other tools and commands print the usage text to standard error. "go tool compile" was the odd one out, so fix it. While at it, make objabi.Flagprint a bit more Go-like with an io.Writer instead of a file descriptor, which is likely a leftover from the C days. Fixes #23234. Change-Id: I9abf2e79461e61c8c8bfaee2c6bf8faf26e0e6c3 Reviewed-on: https://go-review.googlesource.com/85418 Run-TryBot: Daniel Martí TryBot-Result: Gobot Gobot Reviewed-by: Matthew Dempsky --- diff --git a/src/cmd/compile/internal/gc/main.go b/src/cmd/compile/internal/gc/main.go index f1591c16d2..802e02896d 100644 --- a/src/cmd/compile/internal/gc/main.go +++ b/src/cmd/compile/internal/gc/main.go @@ -94,8 +94,8 @@ Key "pctab" supports values: ` func usage() { - fmt.Printf("usage: compile [options] file.go...\n") - objabi.Flagprint(1) + fmt.Fprintf(os.Stderr, "usage: compile [options] file.go...\n") + objabi.Flagprint(os.Stderr) Exit(2) } diff --git a/src/cmd/internal/objabi/flag.go b/src/cmd/internal/objabi/flag.go index 1bd4bc9063..d0522c8f43 100644 --- a/src/cmd/internal/objabi/flag.go +++ b/src/cmd/internal/objabi/flag.go @@ -7,6 +7,7 @@ package objabi import ( "flag" "fmt" + "io" "os" "strconv" "strings" @@ -20,10 +21,8 @@ func Flagfn1(name, usage string, f func(string)) { flag.Var(fn1(f), name, usage) } -func Flagprint(fd int) { - if fd == 1 { - flag.CommandLine.SetOutput(os.Stdout) - } +func Flagprint(w io.Writer) { + flag.CommandLine.SetOutput(w) flag.PrintDefaults() } diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 6dcaf64122..bfff5209a6 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1953,7 +1953,7 @@ func stkprint(ctxt *Link, ch *chain, limit int) { func usage() { fmt.Fprintf(os.Stderr, "usage: link [options] main.o\n") - objabi.Flagprint(2) + objabi.Flagprint(os.Stderr) Exit(2) }