Re: linux-next: Tree for April 10 (arch/x86)

From: Al Viro
Date: Mon Apr 14 2008 - 05:31:17 EST


On Mon, Apr 14, 2008 at 04:43:20AM -0400, Jakub Jelinek wrote:
> On Mon, Apr 14, 2008 at 10:34:40AM +0200, Ingo Molnar wrote:
> > ... but reality called in and gcc added printf format checks as a gcc
> > extension and even modifies the code to make it safe when the user gets
> > it "wrong".
>
> GCC format string checking is only about warnings, GCC never modifies
> the arguments passed to make them match the format string conversions.

Actually, how hard would it be to allow new modifiers recognized by
format string checking? Hell, even being able to teach it that (in this
family of functions) "%<d>u" should expect dma_addr_t, "%016<64>x" -
u64, etc. would solve all the problems. Ideally we'd need something
for things like IPv4 address (__be32 expected), IPv6 address (taking
__be32 *), etc.

No magic, usual calling conventions - it'd still remain a valid C.
We can do that in sparse and just tell gcc to STFU about these warnings,
of course, but that's kind of things that is probably wanted by userland
projects as well...

BTW, ISTR FreeBSD folks carrying gcc patches in their tree for something
with similar purpose - project-specific format modifiers/specifiers.
No idea how hard it would be to generalize, though - never looked at
those in details...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/