Michael G Schwern wrote:
> John E. Malmberg wrote:
>> Michael G Schwern wrote:
>>> John E. Malmberg wrote:
>>>> Default:
>>>>
>>> Thanks, that looks all correct.  If you could try the latest version
>>> of the
>>> code that would be great.  It makes it more accurate for systems which
>>> have
>>> silly failure points, like Y10K.
>>> http://code.google.com/p/y2038/source/browse/trunk/bin/check_max.c
>> EAGLE> cc check_max
>> EAGLE> link check_max
>> EAGLE> run check_max
>>               gmtime max 4294967295
>>            localtime max 4294967295
>>               gmtime min 0
>>            localtime min 0
>>
>> EAGLE> cc check_max/define=__SIGNED_INT_TIME_T
>> EAGLE> link check_max
>> EAGLE> run check_max
>>               gmtime max 2147483647
>>            localtime max 2147483647
>>               gmtime min 3221225472
>>            localtime min 3221225472
> 
> Well that's unsettling.  Any ideas?

I've dusted off my OpenVMS testdrive account and tried the repaired
check_max.c and got...

$ cc check_max
$ link check_max
$ run check_max
              gmtime max 4294967295
           localtime max 4294967295
              gmtime min 0
           localtime min 0

$ cc check_max/define=__SIGNED_INT_TIME_T
$ link check_max
$ run check_max
              gmtime max 2147483647
           localtime max 2147483647
              gmtime min 0
           localtime min 0

Which, as it turns out, is correct because...

bash$ test_date -1
input: -1, time: -1
localtime(-1): Sun Feb  7 01:28:15 2106

gmtime(-1): Sun Feb  7 06:28:15 2106

Whoopsie.  I'd imagine tm.tm_year remains unsigned.


-- 
The mind is a terrible thing,
and it must be stopped.

Reply via email to