| // RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp |
| // RUN: %clang_cc1 -fsyntax-only -std=gnu++98 -fblocks -Wno-address-of-temporary -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp |
| |
| extern "C" { |
| @class XX; |
| @class YY, ZZ, QQ; |
| @class ISyncClient, SMSession, ISyncManager, ISyncSession, SMDataclassInfo, SMClientInfo, |
| DMCConfiguration, DMCStatusEntry; |
| |
| @interface QQ |
| |
| @end |
| |
| @interface SMDataclassInfo : QQ |
| - (XX*) Meth; |
| - (DMCStatusEntry*)Meth2; |
| @end |
| |
| @implementation SMDataclassInfo |
| - (XX*) Meth { return 0; } |
| - (DMCStatusEntry*)Meth2 { return 0; } |
| @end |
| |
| @interface YY |
| { |
| ISyncClient *p1; |
| ISyncSession *p2; |
| } |
| @property (copy) ISyncClient *p1; |
| @end |
| |
| @implementation YY |
| @synthesize p1; |
| @end |
| |
| extern "C" { |
| @class CCC; |
| @class Protocol, P , Q; |
| int I,J,K; |
| }; |
| |
| }; |
| |
| |
| // rdar://15027032 |
| @interface ISDPropertyChangeGroup |
| @end |
| |
| @implementation ISDPropertyChangeGroup |
| @class ISDClientState; |
| - (id)lastModifiedGeneration : (ISDClientState *) obj |
| { |
| return obj ; |
| } |
| @end |