[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] target_posix_types.h

From: Paul Brook
Subject: Re: [Qemu-devel] [PATCH] target_posix_types.h
Date: Wed, 14 Nov 2007 20:39:36 +0000
User-agent: KMail/1.9.7

> This means that time_t had to be tracked down on varying architectures
> to find the size and there was an assumption made that time_t is 32 bits
> - which isn't true for all targets.  The next problem is that if the
> target is 32 bits but the host is 64 bits then there's a sign extension
> problem because (time_t)-1 is used for an error condition.  If you don't
> correctly assign assign the 32-bit -1 to a 64-bit type then, rather than
> -1, you get 4294967295.

Is there any guarantee that time_t is a signed type? The fact that you said 
(time_t)-1 suggests it could be an unsigned type. If time_t is an unsigned 
type, then casting to a wider value is still wrong. You have to special-case 
the error condition.

In the case of time_t this only becomes relevant after 32-bit time_t wrap in 
approx. 99 years time, but I'd expect there are cases where it matters.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]