On iOS, what is actually happening when you pass a double to a method expecting a [single] floating point number as an argument?
===

Say I have an a function:

    - (void) doSomethingWithFloat:(float)aFloat;

and I call that function with a double precision floating point value as follows:

    [self doSomethingWithFloat:12.0];

Is a conversion done from 12.0 (double) to 12.0f (single) at compile-time or runtime, or neither?

Just for clarity: I'm not asking for the difference between single precision and double 
precision floating point numbers.