diff --git a/include/clang/AST/Stmt.h b/include/clang/AST/Stmt.h
index 8dbcf5d..1b5d453 100644
--- a/include/clang/AST/Stmt.h
+++ b/include/clang/AST/Stmt.h
@@ -1632,8 +1632,8 @@
   Stmt **Exprs;
 
 public:
-  MSAsmStmt(ASTContext &C, SourceLocation asmloc,
-            ArrayRef<Token> asmtoks, std::string &asmstr,
+  MSAsmStmt(ASTContext &C, SourceLocation asmloc, bool issimple,
+            bool isvolatile, ArrayRef<Token> asmtoks, std::string &asmstr,
             SourceLocation endloc);
 
   SourceLocation getAsmLoc() const { return AsmLoc; }
diff --git a/lib/AST/Stmt.cpp b/lib/AST/Stmt.cpp
index 69dc170..2894720 100644
--- a/lib/AST/Stmt.cpp
+++ b/lib/AST/Stmt.cpp
@@ -584,10 +584,11 @@
 }
 
 MSAsmStmt::MSAsmStmt(ASTContext &C, SourceLocation asmloc,
-                     ArrayRef<Token> asmtoks,
+                     bool issimple, bool isvolatile, ArrayRef<Token> asmtoks,
                      std::string &asmstr, SourceLocation endloc)
   : Stmt(MSAsmStmtClass), AsmLoc(asmloc), EndLoc(endloc),
-    AsmStr(asmstr), IsSimple(true), IsVolatile(true), NumAsmToks(asmtoks.size()) {
+    AsmStr(asmstr), IsSimple(issimple), IsVolatile(isvolatile),
+    NumAsmToks(asmtoks.size()) {
 
   AsmToks = new (C) Token[NumAsmToks];
   for (unsigned i = 0, e = NumAsmToks; i != e; ++i)
diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp
index 5df1a50..2161aeb 100644
--- a/lib/Sema/SemaStmt.cpp
+++ b/lib/Sema/SemaStmt.cpp
@@ -2755,7 +2755,8 @@
   Diag(AsmLoc, diag::warn_unsupported_msasm);
 
   MSAsmStmt *NS =
-    new (Context) MSAsmStmt(Context, AsmLoc, AsmToks, AsmString, EndLoc);
+    new (Context) MSAsmStmt(Context, AsmLoc, true, true, AsmToks, AsmString,
+                            EndLoc);
 
   return Owned(NS);
 }
