mirror of https://github.com/golang/go.git
test/run: handle asmcheck -gcflags= commands better
The default is for later flags to override earlier ones, so if the asmcheck set flags, it lost the important -S=2. Change-Id: Id538254908d658da2acb55157ac4f6fa44f6a467 Reviewed-on: https://go-review.googlesource.com/c/go/+/222820 Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
801a9d9a0c
commit
96dc04412d
20
test/run.go
20
test/run.go
|
|
@ -667,7 +667,25 @@ func (t *test) run() {
|
|||
}
|
||||
// -S=2 forces outermost line numbers when disassembling inlined code.
|
||||
cmdline := []string{"build", "-gcflags", "-S=2"}
|
||||
cmdline = append(cmdline, flags...)
|
||||
|
||||
// Append flags, but don't override -gcflags=-S=2; add to it instead.
|
||||
for i := 0; i < len(flags); i++ {
|
||||
flag := flags[i]
|
||||
switch {
|
||||
case strings.HasPrefix(flag, "-gcflags="):
|
||||
cmdline[2] += " " + strings.TrimPrefix(flag, "-gcflags=")
|
||||
case strings.HasPrefix(flag, "--gcflags="):
|
||||
cmdline[2] += " " + strings.TrimPrefix(flag, "--gcflags=")
|
||||
case flag == "-gcflags", flag == "--gcflags":
|
||||
i++
|
||||
if i < len(flags) {
|
||||
cmdline[2] += " " + flags[i]
|
||||
}
|
||||
default:
|
||||
cmdline = append(cmdline, flag)
|
||||
}
|
||||
}
|
||||
|
||||
cmdline = append(cmdline, long)
|
||||
cmd := exec.Command(goTool(), cmdline...)
|
||||
cmd.Env = append(os.Environ(), env.Environ()...)
|
||||
|
|
|
|||
Loading…
Reference in New Issue