diff --git a/clang/lib/Sema/SemaStmtAsm.cpp b/clang/lib/Sema/SemaStmtAsm.cpp
index b10b3d8..d209266 100644
--- a/clang/lib/Sema/SemaStmtAsm.cpp
+++ b/clang/lib/Sema/SemaStmtAsm.cpp
@@ -378,17 +378,17 @@
                          << InputExpr->getSourceRange());
     } else if (Info.requiresImmediateConstant() && !Info.allowsRegister()) {
       if (!InputExpr->isValueDependent()) {
-        llvm::SmallVector<PartialDiagnosticAt, 1> Diags;
-        llvm::APSInt Result = InputExpr->EvaluateKnownConstInt(Context, &Diags);
-        if (!Diags.empty())
+        Expr::EvalResult EVResult;
+        if (!InputExpr->EvaluateAsInt(EVResult, Context))
           return StmtError(
               Diag(InputExpr->getBeginLoc(), diag::err_asm_immediate_expected)
               << Info.getConstraintStr() << InputExpr->getSourceRange());
-        if (!Info.isValidAsmImmediate(Result))
-          return StmtError(Diag(InputExpr->getBeginLoc(),
-                                diag::err_invalid_asm_value_for_constraint)
-                           << Result.toString(10) << Info.getConstraintStr()
-                           << InputExpr->getSourceRange());
+        llvm::APSInt Result = EVResult.Val.getInt();
+         if (!Info.isValidAsmImmediate(Result))
+           return StmtError(Diag(InputExpr->getBeginLoc(),
+                                 diag::err_invalid_asm_value_for_constraint)
+                            << Result.toString(10) << Info.getConstraintStr()
+                            << InputExpr->getSourceRange());
       }
 
     } else {
