mirror of
https://github.com/golang/go
synced 2024-11-24 05:00:18 -07:00
cmd/compile: don't crash on -d=ssa/
I forgot how to pull up the ssa debug options help, so instead of writing -d=ssa/help, I just wrote -d=ssa/. Much to my amusement, the compiler just crashed, as shown below. Fix that. panic: runtime error: index out of range goroutine 1 [running]: cmd/compile/internal/ssa.PhaseOption(0x7ffc375d2b70, 0x0, 0xdbff91, 0x5, 0x1, 0x0, 0x0, 0x1, 0x1) /home/mvdan/tip/src/cmd/compile/internal/ssa/compile.go:327 +0x1876 cmd/compile/internal/gc.Main(0xde7bd8) /home/mvdan/tip/src/cmd/compile/internal/gc/main.go:411 +0x41d0 main.main() /home/mvdan/tip/src/cmd/compile/main.go:51 +0xab Change-Id: Ia2ad394382ddf8f4498b16b5cfb49be0317fc1aa Reviewed-on: https://go-review.googlesource.com/c/154421 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
467456b0af
commit
be9c534cde
@ -212,7 +212,8 @@ var BuildDump string // name of function to dump after initial build of ssa
|
|||||||
// BOOT_GO_GCFLAGS=-d='ssa/~^.*scc$/off' GO_GCFLAGS='-d=ssa/~^.*scc$/off' ./make.bash
|
// BOOT_GO_GCFLAGS=-d='ssa/~^.*scc$/off' GO_GCFLAGS='-d=ssa/~^.*scc$/off' ./make.bash
|
||||||
//
|
//
|
||||||
func PhaseOption(phase, flag string, val int, valString string) string {
|
func PhaseOption(phase, flag string, val int, valString string) string {
|
||||||
if phase == "help" {
|
switch phase {
|
||||||
|
case "", "help":
|
||||||
lastcr := 0
|
lastcr := 0
|
||||||
phasenames := " check, all, build, intrinsics"
|
phasenames := " check, all, build, intrinsics"
|
||||||
for _, p := range passes {
|
for _, p := range passes {
|
||||||
|
@ -27,6 +27,10 @@ stderr 'compile.* -e.* -p z1'
|
|||||||
go test -c -n -gcflags='all=-e' z1
|
go test -c -n -gcflags='all=-e' z1
|
||||||
stderr 'compile.* -e.* -p z3 '
|
stderr 'compile.* -e.* -p z3 '
|
||||||
|
|
||||||
|
# this particular -gcflags argument made the compiler crash
|
||||||
|
! go build -gcflags=-d=ssa/ z1
|
||||||
|
stderr 'PhaseOptions usage'
|
||||||
|
|
||||||
# -ldflags for implicit test package applies to test binary
|
# -ldflags for implicit test package applies to test binary
|
||||||
go test -c -n -gcflags=-N -ldflags=-X=x.y=z z1
|
go test -c -n -gcflags=-N -ldflags=-X=x.y=z z1
|
||||||
stderr 'compile.* -N .*z_test.go'
|
stderr 'compile.* -N .*z_test.go'
|
||||||
|
Loading…
Reference in New Issue
Block a user