> the native code generator was passing the Float as a C float on the
> stack, but snprintf() expects a double.  Half-remembering that C
> specifies that floats should be promoted to doubles in function call
> arguemts, I modified the NCG to do just this.  But the C standard
> doesn't say this - it says that floats are promoted to doubles only for
> 
>         (a) functions without an ANSI prototype, and
>         (b) vararg functions, for args after the "...".

Ha.  So that explains why it sort-of worked before, since the 
promotion doesn't happen if there is a prototype.  Well spotted.

How absolutely horrible.  Why do the C people have such a 
bizarre set of rules?  

J
_______________________________________________
FFI mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/ffi

Reply via email to