# New Ticket Created by Alex Jakimenko
# Please include the string: [perl #125682]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=125682 >
Code:
say Date.new("2000-01-01") + 100000000; # OK
say Date.new("2000-01-01") + 1000000000; # negative?
say Date.new("2000-01-01") + 10000000000; # gahh...
say Date.new("2000-01-01") + 10000000000000000000000000000000; # That's fun!
Result:
275790-09-13
-199898-7017918-858993471
922823-7017917-9448928076
1999--14035828--4570789517646521952
Clearly a bug. More precisely:
Code:
say (Date.new("2000-01-01") + 536103961).perl; # OK! What if we add just
one more day…
say (Date.new("2000-01-01") + 536103962).perl; # Boom!
Result:
Date.new(1469802, 10, 17)
Date.new(-1470002, 7017915, 858993485)
Possibly some overflow.