[tz] localtime.c issue

Ian Abbott abbotti at mev.co.uk
Tue Jul 9 14:11:50 UTC 2013


On 2013-07-09 14:53, Ian Abbott wrote:
> On 2013-07-09 11:06, Ian Abbott wrote:
>> On 2013-07-08 21:09, Andy Heninger wrote:
>>> This compilation error from the localtime.c in 2013d looks like an
>>> actual problem. I think time_t is generally an integer type of some sort.
>>>
>>> Built using the clang compiler on Linux.
>>>
>>> localtime.c:1517:34: error: implicit conversion from 'double' to
>>> 'time_t' (aka 'long') changes value from 0.5 to 0
>>> [-Werror,-Wliteral-conversion]
>>>                   register time_t         half_second = 0.5;
>>>                                           ~~~~~~~~~~~   ^~~
>>> 1 error generated.
>>>
>>> Thanks,
>>>     -- Andy Heninger
>>
>> How about just changing it from an implicit conversion to an explicit one?
>>
>>       register time_t half_second = (time_t)0.5;
>>
>> ?
>
> I've just tested that with
>
>     make CC=clang CFLAGS="-Werror -Wall"
>
> It seems to work.  But Paul has already fixed it with the double_to_time
> function, so my fix is superfluous.

However, my version is faster (for non-floating-point time_t) if you 
leave out the optimization options, like I did.  Without optimization, 
the double_to_time function actually does get called!

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-


More information about the tz mailing list