diff --git a/src/cmd/vet/internal/cfg/builder.go b/src/cmd/vet/internal/cfg/builder.go index 79c906bca0..da1cc7e638 100644 --- a/src/cmd/vet/internal/cfg/builder.go +++ b/src/cmd/vet/internal/cfg/builder.go @@ -98,7 +98,9 @@ start: } case token.GOTO: - block = b.labeledBlock(s.Label)._goto + if s.Label != nil { + block = b.labeledBlock(s.Label)._goto + } } if block == nil { block = b.newBlock("undefined.branch") diff --git a/src/cmd/vet/internal/cfg/cfg_test.go b/src/cmd/vet/internal/cfg/cfg_test.go index 5d98f136bd..2400fed6f4 100644 --- a/src/cmd/vet/internal/cfg/cfg_test.go +++ b/src/cmd/vet/internal/cfg/cfg_test.go @@ -122,6 +122,12 @@ func f10(ch chan int) { } live() } + +func f11() { + goto; // mustn't crash + dead() +} + ` func TestDeadCode(t *testing.T) {