Changes to mktime to handle invalid dates, overflow and underflow andcalculating...
authorRaman Tenneti <rtenneti@google.com>
Tue, 23 Feb 2021 02:03:11 +0000 (18:03 -0800)
committerRaman Tenneti <rtenneti@google.com>
Tue, 23 Feb 2021 02:37:40 +0000 (18:37 -0800)
commit034f5629256c810ecf4805911e3fe407e562f3b7
tree9d5dac59c22675ac986c33a57be9e2693fd4f7e2
parent7424efd5ad57d18de65e1a5e572a04e1348a7e04
Changes to mktime to handle invalid dates, overflow and underflow andcalculating the correct date and thenumber of seconds even if invalid datesare passed as arguments.

Added tests for invalid dates like the following
  Date 1970-01-01 00:00:-1 is treated as 1969-12-31 23:59:59 and seconds
  are returned for the modified date.

Tested the code by doing ninja check-libc (and cmake).

Reviewed By: sivachandra, rtenneti

Differential Revision: https://reviews.llvm.org/D96684
libc/src/time/CMakeLists.txt
libc/src/time/mktime.cpp
libc/src/time/time_utils.h [new file with mode: 0644]
libc/test/src/time/CMakeLists.txt
libc/test/src/time/TmMatcher.h [new file with mode: 0644]
libc/test/src/time/mktime_test.cpp