Remove unused slot/reference and update Sema::ActOnIdentifierExpr().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56438 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index b7d5c8e..e374a03 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -436,11 +436,12 @@
// If we are in a block and the variable is outside the current block,
// bind the variable reference with a BlockDeclRefExpr.
- // If the variable is in the byref set, bind it directly, otherwise it will be
- // bound by-copy, thus we make it const within the closure.
- if (!CurBlock->ByRefVars.count(VD))
- VD->getType().addConst();
+ // The BlocksAttr indicates the variable is bound by-reference.
+ if (VD->getAttr<BlocksAttr>())
+ return new BlockDeclRefExpr(VD, VD->getType(), Loc, true);
+ // Variable will be bound by-copy, make it const within the closure.
+ VD->getType().addConst();
return new BlockDeclRefExpr(VD, VD->getType(), Loc, false);
}