Tweak Expr::isModifiableLvalue() and Expr::isLvalue() to better deal with BlockDeclRef exprs.

This fixes <rdar://problem/6248392> clang: Error when using address of stack variable inside block.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56652 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 1a80283..e8b4d8c 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -2181,6 +2181,10 @@
     Diag(loc, diag::err_typecheck_duplicate_vector_components_not_mlvalue,
          lex->getSourceRange());
     return QualType();
+  case Expr::MLV_NotBlockQualified:
+    Diag(loc, diag::err_block_decl_ref_not_modifiable_lvalue,
+         lex->getSourceRange());
+    return QualType();
   }
 
   AssignConvertType ConvTy;