diff options
author | Keith Randall <khr@golang.org> | 2022-07-24 09:48:56 -0700 |
---|---|---|
committer | Keith Randall <khr@google.com> | 2022-07-25 20:44:49 +0000 |
commit | 24dc27a3c084b901ee456637541ea818495888b0 (patch) | |
tree | a115948758f4b2bfdfee86418c3b41ce5bd4400c | |
parent | 9fcc8b2c1eeb2333751d80626e4204d304c8b3c6 (diff) | |
download | go-24dc27a3c084b901ee456637541ea818495888b0.tar.gz go-24dc27a3c084b901ee456637541ea818495888b0.zip |
cmd/compile: fix blank label code
When checkEnabled is forced true, the 52278 test fails. Be a bit
more careful about processing blank labels.
Update #52278
Change-Id: I48aa89e2c9e3715d8efe599bc4363b5b5879d8a2
Reviewed-on: https://go-review.googlesource.com/c/go/+/419318
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: David Chase <drchase@google.com>
-rw-r--r-- | src/cmd/compile/internal/ssagen/ssa.go | 4 | ||||
-rw-r--r-- | test/fixedbugs/issue52278.go | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go index a7778d37fb..2ee027092e 100644 --- a/src/cmd/compile/internal/ssagen/ssa.go +++ b/src/cmd/compile/internal/ssagen/ssa.go @@ -1496,6 +1496,10 @@ func (s *state) stmt(n ir.Node) { case ir.OLABEL: n := n.(*ir.LabelStmt) sym := n.Label + if sym.IsBlank() { + // Nothing to do because the label isn't targetable. See issue 52278. + break + } lab := s.label(sym) // The label might already have a target block via a goto. diff --git a/test/fixedbugs/issue52278.go b/test/fixedbugs/issue52278.go index 56169e6871..147b653037 100644 --- a/test/fixedbugs/issue52278.go +++ b/test/fixedbugs/issue52278.go @@ -1,4 +1,4 @@ -// compile +// compile -d=ssa/check/on // Copyright 2022 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style |