зеркало из https://github.com/microsoft/clang-1.git
modern objective-c rewriter: Fix up translation of
property attributes. // rdar://11095151 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153261 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
643586fe4f
Коммит
2df089d4d8
|
@ -6246,7 +6246,7 @@ void RewriteModernObjC::RewriteObjCClassMetaData(ObjCImplementationDecl *IDecl,
|
|||
ClassProperties.push_back(*I);
|
||||
|
||||
Write_prop_list_t_initializer(*this, Context, Result, ClassProperties,
|
||||
/* Container */0,
|
||||
/* Container */IDecl,
|
||||
"_OBJC_$_PROP_LIST_",
|
||||
CDecl->getNameAsString());
|
||||
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
// RUN: %clang_cc1 -E %s -o %t.mm
|
||||
// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s
|
||||
|
||||
// rdar://11095151
|
||||
|
||||
typedef void (^void_block_t)(void);
|
||||
|
||||
@interface PropertyClass {
|
||||
int q;
|
||||
void_block_t __completion;
|
||||
PropertyClass* YVAR;
|
||||
id ID;
|
||||
}
|
||||
@property int q;
|
||||
@property int r;
|
||||
|
||||
@property (copy) void_block_t completionBlock;
|
||||
@property (retain) PropertyClass* Yblock;
|
||||
@property (copy) id ID;
|
||||
|
||||
@end
|
||||
|
||||
@implementation PropertyClass
|
||||
@synthesize q; // attributes should be "Ti,Vq"
|
||||
@dynamic r; // attributes should be "Ti,D"
|
||||
@synthesize completionBlock=__completion; // "T@?,C,V__completion"
|
||||
@synthesize Yblock = YVAR; // "T@\"PropertyClass\",&,VYVAR"
|
||||
@synthesize ID; // "T@,C,VID"
|
||||
@end
|
||||
|
||||
// CHECK: Ti,Vq
|
||||
// CHECK: Ti,D
|
||||
// CHECK: T@?,C,V__completion
|
||||
// CHECK: T@\"PropertyClass\",&,VYVAR
|
||||
|
Загрузка…
Ссылка в новой задаче