Em caso de dúvida, verifique a saída do montador. Por exemplo, escreva um pequeno trecho mínimo, ou seja, como este
#import <Cocoa/Cocoa.h>
void test() {
CGRect r = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f);
NSLog(@"%f", r.size.width);
}
Em seguida, compile-o no montador com a -Sopção.
gcc -S test.m
Salve a saída do assembler no test.sarquivo, remova .0f-a das constantes e repita o comando de compilação. Em seguida, faça uma diffdo novo test.se do anterior. Acho que isso deve mostrar se existem diferenças reais. Acho que muitos têm uma visão do que acham que o compilador faz, mas no final do dia, deve-se saber como verificar quaisquer teorias.