65 lines · plain
1// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp2// RUN: %clang_cc1 -fsyntax-only -std=gnu++98 -fblocks -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp3 4@protocol P @end5@protocol P1 @end6@interface INTF7{8 id CLASS_IVAR;9 id<P, P1> Q_IVAR;10 11 void (^_block)(id<P>);12 void (*_fptr)(void (^_block)(id<P>));13 char CLASS_EXT_IVAR;14 id<P, P1> (^ext_block)(id<P>, INTF<P,P1>*, INTF*);15 id IMPL_IVAR;16 double D_IMPL_IVAR;17 INTF<P> *(*imp_fptr)(void (^_block)(id<P>, INTF<P,P1>*));18 id arr[100];19}20@end21 22@implementation INTF @end23 24@interface MISC_INTF25{26 id CLASS_IVAR;27 id<P, P1> Q_IVAR;28 29 void (^_block)(id<P>);30 void (*_fptr)(void (^_block)(id<P>));31 unsigned int BF : 8;32}33@end34 35@interface MISC_INTF()36{37 char CLASS_EXT_IVAR;38 id<P, P1> (^ext_block)(id<P>, MISC_INTF<P,P1>*, MISC_INTF*);39}40@end41 42@interface MISC_INTF() {43 int II1;44 double DD1; }45@end46 47@interface MISC_INTF() { int II2; double DD2; }48@end49 50@interface MISC_INTF() { int II3; 51 double DD3; }52@end53 54@interface MISC_INTF() { int II4; double DD4; 55}56@end57 58@implementation MISC_INTF59{60 id IMPL_IVAR;61 double D_IMPL_IVAR;62 MISC_INTF<P> *(*imp_fptr)(void (^_block)(id<P>, MISC_INTF<P,P1>*));63}64@end65