[cfe-commits] r60898 - /cfe/trunk/Driver/RewriteObjC.cpp

Steve Naroff snaroff at apple.com
Thu Dec 11 12:52:01 PST 2008


Author: snaroff
Date: Thu Dec 11 14:51:38 2008
New Revision: 60898

URL: http://llvm.org/viewvc/llvm-project?rev=60898&view=rev
Log:
Fixup generated code for imported block decl refs.
Found while investigating <rdar://problem/6435837> clang ObjC rewriter: use Block_release instead of Block_destroy.

Modified:
    cfe/trunk/Driver/RewriteObjC.cpp

Modified: cfe/trunk/Driver/RewriteObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/RewriteObjC.cpp?rev=60898&r1=60897&r2=60898&view=diff

==============================================================================
--- cfe/trunk/Driver/RewriteObjC.cpp (original)
+++ cfe/trunk/Driver/RewriteObjC.cpp Thu Dec 11 14:51:38 2008
@@ -3516,9 +3516,9 @@
   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 @@
   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 @@
       }
     // 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());
       }





More information about the cfe-commits mailing list