| // RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp |
| // RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp |
| // rdar://14932320 |
| |
| extern "C" void *sel_registerName(const char *); |
| typedef unsigned long size_t; |
| |
| typedef struct { |
| unsigned long long x; |
| unsigned long long y; |
| } myPoint; |
| |
| typedef struct { |
| unsigned long long x; |
| unsigned long long y; |
| } allPoint; |
| |
| @interface Obj |
| + (myPoint)foo; |
| + (myPoint)foo : (int)Arg1 : (double)fArg; |
| + (allPoint)fee; |
| @end |
| |
| @implementation Obj |
| + (allPoint)fee { |
| allPoint a; |
| a.x = a.y = 3; |
| |
| return a; |
| } |
| + (myPoint)foo { |
| myPoint r; |
| r.x = 1; |
| r.y = 2; |
| return r; |
| } |
| |
| + (myPoint)foo : (int)Arg1 : (double)fArg { |
| myPoint r; |
| return r; |
| } |
| @end |
| |
| myPoint Ret_myPoint() { |
| return [Obj foo]; |
| } |
| |
| allPoint Ret_allPoint() { |
| return [Obj fee]; |
| } |
| |
| myPoint Ret_myPoint1(int i, double d) { |
| return [Obj foo:i:d]; |
| } |
| |
| myPoint Ret_myPoint2() { |
| return [Obj foo]; |
| } |