Mac OS X 10.4.9 for x86 Source Code
gcc 实现源代码
源代码在线查看: method-17.mm
/* APPLE LOCAL file mainline */ /* When there is only one candidate method available, make sure the compiler uses its argument/return types when constructing the message sends (so that proper C/C++ argument conversions may take place). */ /* { dg-do run } */ #include extern "C" void abort(void); #define CHECK_IF(expr) if(!(expr)) abort() static double d = 4.5920234e2; @interface Foo : Object -(void) brokenType: (int)x floatingPoint: (double)y; @end @implementation Foo -(void) brokenType: (int)x floatingPoint: (double)y { CHECK_IF(x == 459); CHECK_IF(y == d); } @end int main(void) { Foo *foo=[Foo new]; [foo brokenType: (int)d floatingPoint: d]; return 0; }