mirror of
https://github.com/golang/go.git
synced 2025-05-05 15:43:04 +00:00
When the terminating condition is <= X, we need to make sure that X+step doesn't overflow. Fixes #53617 Change-Id: I36e5384d05b4d7168e48db6094200fcae409bfe5 Reviewed-on: https://go-review.googlesource.com/c/go/+/415219 Reviewed-by: Than McIntosh <thanm@google.com> Run-TryBot: David Chase <drchase@google.com> Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Keith Randall <khr@golang.org> (cherry picked from commit 31b8c23c5702f129aca9241bbb2132c90b1929cc) Reviewed-on: https://go-review.googlesource.com/c/go/+/415415 Reviewed-by: Keith Randall <khr@google.com>
43 lines
659 B
Go
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.MaxInt64); i <= math.MaxInt64; i++ {
|
|
if i < 0 {
|
|
println("done")
|
|
return
|
|
}
|
|
println(i, i < 0)
|
|
}
|
|
}
|
|
func g() {
|
|
for i := int64(math.MaxInt64) - 1; i <= math.MaxInt64; i++ {
|
|
if i < 0 {
|
|
println("done")
|
|
return
|
|
}
|
|
println(i, i < 0)
|
|
}
|
|
}
|
|
func h() {
|
|
for i := int64(math.MaxInt64) - 2; i <= math.MaxInt64; i += 2 {
|
|
if i < 0 {
|
|
println("done")
|
|
return
|
|
}
|
|
println(i, i < 0)
|
|
}
|
|
}
|