summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBlocks.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-11-11 00:11:38 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-11-11 00:11:38 +0000
commit2a5deb56a4c70b47919a84f3088b5d064caca401 (patch)
treebddd238e3be5d64de03aba24f1154fac9abefb7b /clang/lib/CodeGen/CGBlocks.cpp
parentb057cf81469ae46a26b1ace35ed9c7b98aefe822 (diff)
downloadbcm5719-llvm-2a5deb56a4c70b47919a84f3088b5d064caca401.tar.gz
bcm5719-llvm-2a5deb56a4c70b47919a84f3088b5d064caca401.zip
Adding couple of Block API, a bug fix and
a test change, all for blocks. wip. llvm-svn: 118745
Diffstat (limited to 'clang/lib/CodeGen/CGBlocks.cpp')
-rw-r--r--clang/lib/CodeGen/CGBlocks.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGBlocks.cpp b/clang/lib/CodeGen/CGBlocks.cpp
index 44e0833daf5..33646871e08 100644
--- a/clang/lib/CodeGen/CGBlocks.cpp
+++ b/clang/lib/CodeGen/CGBlocks.cpp
@@ -311,11 +311,10 @@ llvm::Value *CodeGenFunction::BuildBlockLiteralTmp(const BlockExpr *BE) {
}
const BlockDeclRefExpr *BDRE = cast<BlockDeclRefExpr>(E);
+ Note.RequiresCopying = BlockRequiresCopying(BDRE);
+
const ValueDecl *VD = BDRE->getDecl();
QualType T = VD->getType();
-
- Note.RequiresCopying = BlockRequiresCopying(T);
-
if (BDRE->isByRef()) {
Note.flag = BLOCK_FIELD_IS_BYREF;
if (T.isObjCGCWeak())
@@ -563,7 +562,7 @@ void CodeGenFunction::AllocateBlockDecl(const BlockDeclRefExpr *E) {
// Don't run the expensive check, unless we have to.
if (!BlockHasCopyDispose)
if (E->isByRef()
- || BlockRequiresCopying(E->getType()))
+ || BlockRequiresCopying(E))
BlockHasCopyDispose = true;
const ValueDecl *D = cast<ValueDecl>(E->getDecl());
OpenPOWER on IntegriCloud