From: Keith Randall Date: Sun, 12 Jul 2015 18:52:09 +0000 (-0700) Subject: [dev.ssa] cmd/compile/internal/gc: handle _ label correctly X-Git-Tag: go1.7beta1~1623^2^2~395 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7e4c06dad065d1440fe8fcfa8e97702c88e1374e;p=gostls13.git [dev.ssa] cmd/compile/internal/gc: handle _ label correctly An empty label statement can just be ignored, as it cannot be the target of any gotos. Tests are already in test/fixedbugs/issue7538*.go Fixes #11589 Fixes #11593 Change-Id: Iadcd639e7200ce16aa40fd7fa3eaf82522513e82 Reviewed-on: https://go-review.googlesource.com/12093 Reviewed-by: Daniel Morsing Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go index 2eb0402f69..d47680bf8a 100644 --- a/src/cmd/compile/internal/gc/ssa.go +++ b/src/cmd/compile/internal/gc/ssa.go @@ -316,6 +316,11 @@ func (s *state) stmt(n *Node) { s.assign(OAS, n.Left.Name.Heapaddr, palloc) case OLABEL, OGOTO: + if n.Op == OLABEL && isblanksym(n.Left.Sym) { + // Empty identifier is valid but useless. + // See issues 11589, 11593. + return + } // get block at label, or make one t := s.labels[n.Left.Sym.Name] if t == nil {