]> Cypherpunks repositories - gostls13.git/commit
time: test and fix Time.Round, Duration.Round for d > 2⁶²
authorRuss Cox <rsc@golang.org>
Fri, 31 Mar 2017 16:34:25 +0000 (12:34 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 31 Mar 2017 20:39:58 +0000 (20:39 +0000)
commit105cc2bd6396f47bc613721fb6c1db66050e15ab
tree3d7b195c7b5df39925dfd1702b7e30a8b4bf943c
parent8ab71304d4f02e4280eb5c04422cdec5feb27c11
time: test and fix Time.Round, Duration.Round for d > 2⁶²

Round uses r+r < d to decide whether the remainder is
above or below half of d (to decide whether to round up or down).
This is wrong when r+r wraps negative, because it looks < d
but is really > d.

No one will ever care about rounding to a multiple of
d > 2⁶² (about 146 years), but might as well get it right.

Fixes #19807.

Change-Id: I1b55a742dc36e02a7465bc778bf5dd74fe71f7c0
Reviewed-on: https://go-review.googlesource.com/39151
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/time/time.go
src/time/time_test.go