1// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp 2// RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-address-of-temporary -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp 3 4extern "C" { 5@class XX; 6@class YY, ZZ, QQ; 7@class ISyncClient, SMSession, ISyncManager, ISyncSession, SMDataclassInfo, SMClientInfo, 8 DMCConfiguration, DMCStatusEntry; 9 10@interface QQ 11 12@end 13 14@interface SMDataclassInfo : QQ 15- (XX*) Meth; 16- (DMCStatusEntry*)Meth2; 17@end 18 19@implementation SMDataclassInfo 20- (XX*) Meth { return 0; } 21- (DMCStatusEntry*)Meth2 { return 0; } 22@end 23 24@interface YY 25{ 26 ISyncClient *p1; 27 ISyncSession *p2; 28} 29@property (copy) ISyncClient *p1; 30@end 31 32@implementation YY 33@synthesize p1; 34@end 35 36extern "C" { 37@class CCC; 38@class Protocol, P , Q; 39int I,J,K; 40}; 41 42}; 43 44 45// rdar://15027032 46@interface ISDPropertyChangeGroup 47@end 48 49@implementation ISDPropertyChangeGroup 50@class ISDClientState; 51- (id)lastModifiedGeneration : (ISDClientState *) obj 52{ 53 return obj ; 54} 55@end 56