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