aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Naroff <snaroff@apple.com>2008-12-11 20:51:38 +0000
committerSteve Naroff <snaroff@apple.com>2008-12-11 20:51:38 +0000
commit47a242208867fa433d05a78bf346bbb37721a507 (patch)
treef5d3b5597b8fa63e1a6147fda3fc7eb8e487628c
parente267ff35b2f4e9d2b0d8bf24109d41cc7398b61b (diff)
Fixup generated code for imported block decl refs.
Found while investigating <rdar://problem/6435837> clang ObjC rewriter: use Block_release instead of Block_destroy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60898 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--Driver/RewriteObjC.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/Driver/RewriteObjC.cpp b/Driver/RewriteObjC.cpp
index dd04a12d35..dd3f200635 100644
--- a/Driver/RewriteObjC.cpp
+++ b/Driver/RewriteObjC.cpp
@@ -3516,9 +3516,9 @@ std::string RewriteObjC::SynthesizeBlockHelperFuncs(BlockExpr *CE, int i,
S += "*src) {";
for (llvm::SmallPtrSet<ValueDecl*,8>::iterator I = ImportedBlockDecls.begin(),
E = ImportedBlockDecls.end(); I != E; ++I) {
- S += "_Block_copy_assign(&dst->";
+ S += "_Block_copy_assign((void*)&dst->";
S += (*I)->getNameAsString();
- S += ", src->";
+ S += ", (void*)src->";
S += (*I)->getNameAsString();
S += ");}";
}
@@ -3529,7 +3529,7 @@ std::string RewriteObjC::SynthesizeBlockHelperFuncs(BlockExpr *CE, int i,
S += "*src) {";
for (llvm::SmallPtrSet<ValueDecl*,8>::iterator I = ImportedBlockDecls.begin(),
E = ImportedBlockDecls.end(); I != E; ++I) {
- S += "_Block_destroy(src->";
+ S += "_Block_destroy((void*)src->";
S += (*I)->getNameAsString();
S += ");";
}
@@ -3993,7 +3993,7 @@ void RewriteObjC::CollectBlockDeclRefInfo(BlockExpr *Exp) {
}
// Find any imported blocks...they will need special attention.
for (unsigned i = 0; i < BlockDeclRefs.size(); i++)
- if (isBlockPointerType(BlockDeclRefs[i]->getType())) {
+ if (BlockDeclRefs[i]->getType()->isBlockPointerType()) {
GetBlockCallExprs(BlockDeclRefs[i]);
ImportedBlockDecls.insert(BlockDeclRefs[i]->getDecl());
}