| 
    
 [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] FIX: Cast the time_t values to avoid warnings
 On Sat, Apr 27, 2013 at 11:32:35PM +0200, 7heo@xxxxxxx wrote:
> On Sat, Apr 27, 2013 at 09:18:03PM +0100, Patrick Welche wrote:
> > On Sat, Apr 27, 2013 at 09:52:33PM +0200, 7heo wrote:
> > > I added 4 casts from time_t to unsigned long int
> > > in the libxl_sprintf functions, so there is no
> > > warning at compilation time (and no failing with
> > > -Werror).
> > > 
> > > The casting format has been discuted, and since
> > > there is no system having a 8 byte time_t format
> > > yet; unsigned long int should be sufficient.
> > > Also, it matches the libxl_sprintf syntax (%lu).
> > 
> > I thought that earlier in the thread someone pointed
> > out that unsigned long long would be a better plan?
> > (long could just be 32 bits long)
> > 
> > Cheers,
> > 
> > Patrick
> 
> As explained in the second paragraph of the git commit
> message (even if I did a typo); this has been discussed
> already.
Is the typo in the part which says "since there is no system having
a 8 byte time_t format yet", which should read "most systems which
want to keep going beyond 2038 have 8 byte time_t format"?
The box I'm sitting in front of certainly has sizeof(time_t)==8.
The point is that all that is guaranteed is that
  sizeof(long long) >= sizeof(long) >= sizeof(int)
Just checked on a 32-bit OS:
% cat foo.c
#include <stdio.h>
#include <time.h>
int main()
{
  printf("time_t: %u  int: %u  long: %u  long long: %u\n",
    sizeof(time_t), sizeof(int), sizeof(long), sizeof(long long));
  return 0;
}
% ./foo
time_t: 8  int: 4  long: 4  long long: 8
so long long is a better choice.
Cheers,
Patrick
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
 
 
  | 
  
![]()  | 
            
         Lists.xenproject.org is hosted with RackSpace, monitoring our  |