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);
 }