1
0
mirror of https://github.com/golang/go synced 2024-11-15 08:20:30 -07:00
go/test/fixedbugs/issue53653.go
Keith Randall 2acd3646fc cmd/compile: rework induction variable detector
Induction variable detection is still not quite right. I've added
another failing test.

Redo the overflow/underflow detector so it is more obviously correct.

Update #53600
Fixes #53653
Fixes #53663

Change-Id: Id95228e282fdbf6bd80b26e1c41d62e935ba08ff
Reviewed-on: https://go-review.googlesource.com/c/go/+/415874
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: David Chase <drchase@google.com>
2022-07-06 17:00:37 +00:00

43 lines
659 B
Go

// run
// Copyright 2022 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() {
f()
g()
h()
}
func f() {
for i := int64(math.MinInt64); i >= math.MinInt64; i-- {
if i > 0 {
println("done")
return
}
println(i, i > 0)
}
}
func g() {
for i := int64(math.MinInt64) + 1; i >= math.MinInt64; i-- {
if i > 0 {
println("done")
return
}
println(i, i > 0)
}
}
func h() {
for i := int64(math.MinInt64) + 2; i >= math.MinInt64; i -= 2 {
if i > 0 {
println("done")
return
}
println(i, i > 0)
}
}