diff options
-rw-r--r-- | Driver/RewriteObjC.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Driver/RewriteObjC.cpp b/Driver/RewriteObjC.cpp index 27e5459089..4eba8cc816 100644 --- a/Driver/RewriteObjC.cpp +++ b/Driver/RewriteObjC.cpp @@ -2180,6 +2180,11 @@ Stmt *RewriteObjC::SynthMessageExpr(ObjCMessageExpr *Exp) { QualType t = mDecl->getParamDecl(i)->getType()->isObjCQualifiedIdType() ? Context->getObjCIdType() : mDecl->getParamDecl(i)->getType(); + // Make sure we convert "t (^)(...)" to "t (*)(...)". + if (isBlockPointerType(t)) { + const BlockPointerType *BPT = t->getAsBlockPointerType(); + t = Context->getPointerType(BPT->getPointeeType()); + } ArgTypes.push_back(t); } returnType = mDecl->getResultType()->isObjCQualifiedIdType() |