From: Alan Donovan Date: Wed, 22 Jun 2016 14:41:30 +0000 (-0400) Subject: cmd/vet/internal/cfg: don't crash on malformed goto statement X-Git-Tag: go1.7rc1~69 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4764d6fd6e64d9d40e7131a3bf4ea0eb1507ef1f;p=gostls13.git cmd/vet/internal/cfg: don't crash on malformed goto statement Change-Id: Ib285c02e240f02e9d5511bd448163ec1d4e75516 Reviewed-on: https://go-review.googlesource.com/24323 Reviewed-by: Rob Pike --- 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) {