blob: 5e01a44e957433c20fa224d1134056717e9b1087 [file] [log] [blame]
Fariborz Jahanianaf300292012-02-20 20:09:20 +00001// 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"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
3
4@protocol P @end
5@protocol P1 @end
6@interface INTF
7{
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@end
21
22@implementation INTF @end
23
24@interface MISC_INTF
25{
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@end
34
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@end
41
42@interface MISC_INTF() {
43 int II1;
44 double DD1; }
45@end
46
47@interface MISC_INTF() { int II2; double DD2; }
48@end
49
50@interface MISC_INTF() { int II3;
51 double DD3; }
52@end
53
54@interface MISC_INTF() { int II4; double DD4;
55}
56@end
57
58@implementation MISC_INTF
59{
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@end