[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <1202596152.22512.34.camel@localhost>
Date: Sat, 09 Feb 2008 23:29:11 +0100
From: Johann Felix Soden <johfel@....de>
To: "H. Peter Anvin" <hpa@...or.com>
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH] time: Fix constant size in kernel/timeconst.h
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists