cmd/compile: don't report newLimit discovered when unsat happens multiple times

Fixes #71852

Change-Id: I696fcb8fc8c0c2e5e5ae6ab50596f6bdb9b7d498
Reviewed-on: https://go-review.googlesource.com/c/go/+/650975
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Jorropo 2025-02-20 11:50:53 +01:00
parent 0de8fc8527
commit 00635de759
2 changed files with 25 additions and 1 deletions

View File

@ -552,8 +552,9 @@ func (ft *factsTable) newLimit(v *Value, newLim limit) bool {
}
if lim.unsat() {
r := !ft.unsat
ft.unsat = true
return true
return r
}
// Check for recursion. This normally happens because in unsatisfiable

View File

@ -0,0 +1,23 @@
// compile
// Copyright 2025 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 (
"math"
)
func main() {
test(2)
}
func test(i int) {
if i <= 0 {
return
}
_ = math.Pow10(i + 2)
}