diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2010-07-09 21:27:28 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-07-09 21:27:28 +0000 |
| commit | 2f8bd36bcf31a60752c36c2226d30f104cf95d6e (patch) | |
| tree | 7527cf774ccc55ba2d466bbb12f359e0ba5ed8ee /clang/lib/Sema/TreeTransform.h | |
| parent | 3e39272fed5cc7db75e0a3ae338824a1dc6c3d97 (diff) | |
| download | bcm5719-llvm-2f8bd36bcf31a60752c36c2226d30f104cf95d6e.tar.gz bcm5719-llvm-2f8bd36bcf31a60752c36c2226d30f104cf95d6e.zip | |
Instantiation of byref variable in
block literal expression.
llvm-svn: 108019
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
| -rw-r--r-- | clang/lib/Sema/TreeTransform.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index db5e2d10f44..05ae38e84aa 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -6279,6 +6279,10 @@ TreeTransform<Derived>::TransformBlockDeclRefExpr(BlockDeclRefExpr *E) { if (!ND) return SemaRef.ExprError(); + // Is this instantiation of a __block variable? + if (E->getDecl()->getAttr<BlocksAttr>()) + ND->addAttr(::new (SemaRef.Context) BlocksAttr(BlocksAttr::ByRef)); + if (!getDerived().AlwaysRebuild() && ND == E->getDecl()) { // Mark it referenced in the new context regardless. |

