Fix an inline asm sema bug that I introduced.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62666 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp
index 4b89acb..9b6da05 100644
--- a/lib/Sema/SemaStmt.cpp
+++ b/lib/Sema/SemaStmt.cpp
@@ -899,8 +899,8 @@
     ParenExpr *InputExpr = cast<ParenExpr>(Exprs[i]);
 
     // Only allow void types for memory constraints.
-    if (info & TargetInfo::CI_AllowsMemory) {
-
+    if ((info & TargetInfo::CI_AllowsMemory) 
+        && !(info & TargetInfo::CI_AllowsRegister)) {
       if (InputExpr->isLvalue(Context) != Expr::LV_Valid)
         return StmtError(Diag(InputExpr->getSubExpr()->getLocStart(),
                               diag::err_asm_invalid_lvalue_in_input)