Implemented rewriting of invocation of a block ivar.

(radar 7482224).
 


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91652 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Fariborz Jahanian 2009-12-18 01:15:21 +00:00
Родитель 81a444a274
Коммит e24b22bb58
2 изменённых файлов: 14 добавлений и 0 удалений

Просмотреть файл

@ -4060,6 +4060,8 @@ Stmt *RewriteObjC::SynthesizeBlockCall(CallExpr *Exp, const Expr *BlockExp) {
SourceLocation(), cast<Expr>(RHSStmt),
Exp->getType());
return CondExpr;
} else if (const ObjCIvarRefExpr *IRE = dyn_cast<ObjCIvarRefExpr>(BlockExp)) {
CPT = IRE->getType()->getAs<BlockPointerType>();
} else {
assert(1 && "RewriteBlockClass: Bad type");
}

Просмотреть файл

@ -0,0 +1,12 @@
// RUN: %clang_cc1 -x objective-c++ -fblocks -rewrite-objc -o - %s
@interface Foo {
void (^_block)(void);
}
@end
@implementation Foo
- (void)bar {
_block();
}
@end