diff options
-rw-r--r-- | Driver/RewriteObjC.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Driver/RewriteObjC.cpp b/Driver/RewriteObjC.cpp index b5efd4fac0..39f4f15ae9 100644 --- a/Driver/RewriteObjC.cpp +++ b/Driver/RewriteObjC.cpp @@ -794,7 +794,12 @@ void RewriteObjC::RewriteObjCMethodDecl(ObjCMethodDecl *OMD, ResultStr += PDecl->getName(); } else { std::string Name = PDecl->getName(); - PDecl->getType().getAsStringInternal(Name); + if (isBlockPointerType(PDecl->getType())) { + // Make sure we convert "t (^)(...)" to "t (*)(...)". + const BlockPointerType *BPT = PDecl->getType()->getAsBlockPointerType(); + Context->getPointerType(BPT->getPointeeType()).getAsStringInternal(Name); + } else + PDecl->getType().getAsStringInternal(Name); ResultStr += Name; } } |