Messages in this thread | | | Date | Wed, 31 Oct 2012 15:49:08 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH 3/3] checkpatch: Emit a warning when decimal values are used |
| |
On Wed, 31 Oct 2012 11:37:03 +0100 Pavel Machek <pavel@ucw.cz> wrote:
> Hi! > > > Linux kernel doesn't like decimals, say so. > > ?! > > Linux surely supports decimal constants, like "100". Did you mean > "octal"? > > If you wanted to add warning for something... I never want to see > > #define CRAPPY_EMBEDDED_REGISTER ((0x1) << (0)) > > again....
Joe means floating point. I suggest that the patchset be reworked, using s/decimal/float/g.
The kernel does have floating point constants, in various graphics drivers, iirc. They are used in places where the floatiness gets handled at complation time. Along the lines of:
int foo = 1.1 * 2.2;
And I suppose that's an OK thing to do. We could instead do
int foo = 2; /* 1.1 * 2.2 */
but that's taking away a programmer convenience for no good reason. It would be highly inconvenient if the "1.1" was in fact a #define in some other file, or a Kconfig string.
That being said, I guess it's a worthwhile thing for checkpatch to warn about. Hopefully the programmer will say "well thanks, but I meant to do that".
A much better solution would be to arrange for the kernel to fail to compile (or to fail to link) if floats are used. That way, people could continue to use floats within their compile-time scalar expressions without getting harrassed by checkpatch. But I don't know how to arrange this.
hm.
| |