The math to invert the input index was wrong.
Fixes #45323
Change-Id: I7c68cac280e8f01a9c806ecb0f195f169267437e
Reviewed-on: https://go-review.googlesource.com/c/go/+/306431
Trust: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: fannie zhang <Fannie.Zhang@arm.com>
Reviewed-by: David Chase <drchase@google.com>
ei := b.Preds[1].i
sb0 := pb1.Succs[1-ei].b
if sdom.IsAncestorEq(sb0, pb0) {
- convertPhi(pb1, v, ei-1)
+ convertPhi(pb1, v, 1-ei)
break
}
} else {
--- /dev/null
+// compile
+
+// Copyright 2021 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
+
+func g() bool
+
+func f(y int) bool {
+ b, ok := true, false
+ if y > 1 {
+ ok = g()
+ }
+ if !ok {
+ ok = g()
+ b = false
+ }
+ if !ok {
+ return false
+ }
+ return b
+}