diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-11-11 00:11:38 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-11-11 00:11:38 +0000 |
commit | e27e9d673346056e6ff7dca1d7fb1d75dfd42956 (patch) | |
tree | 2ee7981f235c270dd3e5b42cb24486947fad70aa /lib/CodeGen/CGBlocks.cpp | |
parent | 9b743f458055e1866af332f201b5961151e165ef (diff) |
Adding couple of Block API, a bug fix and
a test change, all for blocks. wip.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118745 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGBlocks.cpp')
-rw-r--r-- | lib/CodeGen/CGBlocks.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp index 44e0833daf..33646871e0 100644 --- a/lib/CodeGen/CGBlocks.cpp +++ b/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()); |