On Mon, Apr 14, 2008 at 10:12:20AM +0200, Ingo Molnar wrote:
It is an undefined behaviour according to any variant of C standard.
Sorry, printf() is not magic and it does _not_ have special calling
conventions.
No, sorry. That kind of mismatch is simply not a valid C. Plain as that,
read the standard and you'll see.
Fundamentally, printf() is a function like any other vararg one. So
explicitly typed arguments *are* the right thing to do.
What is not right is the lack of ability to define new conversions. If
we could do that, we would kill the absolute majority of casts - and
remain within normal C limits...
--