Messages in this thread | | | Subject | Re: [PATCH] time: Fix constant size in kernel/timeconst.h | From | Johann Felix Soden <> | Date | Sat, 09 Feb 2008 23:29:11 +0100 |
| |
H. Peter Anvin wrote: > Johann Felix Soden wrote: > > kernel/timeconst.pl generates only long sized constants in timeconst.pl > > which gives this warning: > > > > kernel/time.c: In function 'msecs_to_jiffies': > > kernel/time.c:472: warning: integer constant is too large for 'long' type > > > > unsigned long long is needed. > Hm, you've just taken a warning and elevated it to a bug. > > According to the C standard, a constant has the shortest type (>= int) > needed to hold the constant, and the warning above is somewhat bogus in > that context (what version of gcc is that, anyway?) > > ULL is only appropriate to 32-bit machines, or there will be other > issues downstream. The Right Way[TM] to do this would be to get Linux > to have the [U]INTxx_C() macros from C99. > > -hpa
Sorry for this. Thanks for teaching about the C standard. About your question: gcc 4.2.3 gave me this warning. And I'm a little bit surprised because the kernel code is full of constants with ULL. Is kernel/time.c a special case?
J. F. Soden
| |