aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2008-10-30 14:45:29 +0000
committerSteve Naroff <snaroff@apple.com>2008-10-30 14:45:29 +0000
commitc8ad87bcbd71c3538fc3881cb5095f18573dbacf (patch)
treeecd77b13d07e2ccea0a4ecc22794d92385fa8223
parenta7fbf7282eadebaf1293d9f970b01fb57f4b0ae4 (diff)
Make sure RewriteObjCMethodDecl() does a block pointer rewrite.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58430 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--Driver/RewriteObjC.cpp7
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;
}
}