# 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.

Reply via email to