| /* 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 } */ |
| /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */ |
| |
| #include "../objc-obj-c++-shared/TestsuiteObject.m" |
| |
| extern void abort(void); |
| #define CHECK_IF(expr) if(!(expr)) abort() |
| |
| static double d = 4.5920234e2; |
| |
| @interface Foo : TestsuiteObject |
| -(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: d floatingPoint: d]; |
| return 0; |
| } |
| |