Re: [PATCH] time: Fix constant size in kernel/timeconst.h

H. Peter Anvin
2008-02-09T21:34:30Z

Johann Felix Soden wrote:
> From: Johann Felix Soden <johfel@users.sourceforge.net>
>
> 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