Steve Langasek <vorlon@debian.org> writes:
> On Mon, Jan 14, 2008 at 07:41:11AM +0100, Paolo Bonzini wrote:
>> int g(float z)
>> {
>> printf ("%g\n", z);
>> }
>
> Well, AFAICS this is an error; %g refers to a double, and
> you're passing a float, so that output would be undefined.
The default argument promotions (C99 6.5.2.2p6-7) will convert
this float to double before the call.
However, I didn't see any #include <stdio.h> or int printf(const
char *format, ...) declaration in the source code posted to this
thread. Calling a variadic function without a prototype results
in undefined behaviour in principle, but I don't remember whether
it matters in practice with the calling conventions of the Alpha.
Attachment:
pgpHhoadST7KO.pgp
Description: PGP signature