From 3b0fd64cf3935e3b087492a27a3df139e3e36ecb Mon Sep 17 00:00:00 2001 From: Steve Naroff Date: Sat, 4 Oct 2008 18:00:11 +0000 Subject: [PATCH] Handle bookkeeping for imported blocks (in SynthesizeBlockImpl). This code was "lost" with my recent changes to SynthesizeBlockFunc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57056 91177308-0d34-0410-b5e6-96231b3b80d8 --- Driver/RewriteBlocks.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Driver/RewriteBlocks.cpp b/Driver/RewriteBlocks.cpp index 7f9b8ea952..57d3a84560 100644 --- a/Driver/RewriteBlocks.cpp +++ b/Driver/RewriteBlocks.cpp @@ -483,7 +483,14 @@ std::string RewriteBlocks::SynthesizeBlockImpl(BlockExpr *CE, std::string Tag) { for (unsigned i = 0; i < BlockDeclRefs.size(); i++) if (BlockDeclRefs[i]->isByRef()) BlockByRefDecls.insert(BlockDeclRefs[i]->getDecl()); - + + // Find any imported blocks...they will need special attention. + for (unsigned i = 0; i < BlockDeclRefs.size(); i++) + if (isBlockPointerType(BlockDeclRefs[i]->getType())) { + GetBlockCallExprs(CE); + ImportedBlockDecls.insert(BlockDeclRefs[i]->getDecl()); + } + // Output all "by copy" declarations. for (llvm::SmallPtrSet::iterator I = BlockByCopyDecls.begin(), E = BlockByCopyDecls.end(); I != E; ++I) { -- 2.50.1