blob: abebb2c0feff5ac138a926ba008f8acf0d9348a2 [file] [log] [blame]
Fariborz Jahanian2df089d2012-03-22 17:39:35 +00001// RUN: %clang_cc1 -E %s -o %t.mm
2// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s
3
4// rdar://11095151
5
6typedef void (^void_block_t)(void);
7
8@interface PropertyClass {
9 int q;
10 void_block_t __completion;
11 PropertyClass* YVAR;
12 id ID;
13}
14@property int q;
15@property int r;
16
17@property (copy) void_block_t completionBlock;
18@property (retain) PropertyClass* Yblock;
19@property (copy) id ID;
20
21@end
22
23@implementation PropertyClass
24@synthesize q; // attributes should be "Ti,Vq"
25@dynamic r; // attributes should be "Ti,D"
26@synthesize completionBlock=__completion; // "T@?,C,V__completion"
27@synthesize Yblock = YVAR; // "T@\"PropertyClass\",&,VYVAR"
28@synthesize ID; // "T@,C,VID"
29@end
30
31// CHECK: Ti,Vq
32// CHECK: Ti,D
33// CHECK: T@?,C,V__completion
34// CHECK: T@\"PropertyClass\",&,VYVAR
35
Fariborz Jahanianebfa2722012-05-03 23:19:33 +000036@interface Test @end
37@interface Test (Category)
38@property int q;
39@end
40
41@implementation Test (Category)
42@dynamic q;
43@end
44
45// CHECK: {{"q","Ti,D"}}