>>>>> Dale Johannesen writes: Dale> It may have been intended to allow the callee to be a K&R-style or Dale> varargs function, where all float args get promoted to double. Dale> In particular, printf was often called without being declared in K&R- Dale> era code. This is one way to make that code work in a C90 environment.
Except that arguments in registers are not promoted and arguments in registers spilled to the stack for varargs are not promoted. In fact it makes varargs more complicated. And it does not really match K&R promotion rules. David