diff --git a/src/cmd/compile/internal/gc/cgen.go b/src/cmd/compile/internal/gc/cgen.go index 4160ae9d40..b6a3e5bbeb 100644 --- a/src/cmd/compile/internal/gc/cgen.go +++ b/src/cmd/compile/internal/gc/cgen.go @@ -2018,11 +2018,11 @@ func bgenx(n, res *Node, wantTrue bool, likely int, to *obj.Prog) { Regalloc(&n2, nr.Type, nil) Cgen(nr, &n2) nr = &n2 - Regfree(&n2) Regalloc(&n1, nl.Type, nil) Cgen(&tmp, &n1) Regfree(&n1) + Regfree(&n2) } else { var n1 Node if !nl.Addable && Ctxt.Arch.Thechar == '8' { diff --git a/test/fixedbugs/issue12226.go b/test/fixedbugs/issue12226.go new file mode 100644 index 0000000000..22467116c1 --- /dev/null +++ b/test/fixedbugs/issue12226.go @@ -0,0 +1,15 @@ +// run + +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import "fmt" + +func main() { + if []byte("foo")[0] == []byte("b")[0] { + fmt.Println("BUG: \"foo\" and \"b\" appear to have the same first byte") + } +}