diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Sema/SemaStmtAsm.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Sema/SemaStmtAsm.cpp b/lib/Sema/SemaStmtAsm.cpp index f99c983453..017cdb90f6 100644 --- a/lib/Sema/SemaStmtAsm.cpp +++ b/lib/Sema/SemaStmtAsm.cpp @@ -456,6 +456,7 @@ StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc, SourceLocation LBraceLoc, // Change to the Intel dialect. Parser->setAssemblerDialect(1); Parser->setTargetParser(*TargetParser.get()); + Parser->setParsingInlineAsm(true); // Prime the lexer. Parser->Lex(); @@ -482,9 +483,9 @@ StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc, SourceLocation LBraceLoc, // Match the MCInstr. unsigned Opcode; unsigned ErrorInfo; - HadError = TargetParser->MatchInstruction(IDLoc, Operands, *Str.get(), - Opcode, ErrorInfo, - /*matchingInlineAsm*/ true); + HadError = TargetParser->MatchAndEmitInstruction(IDLoc, Opcode, Operands, + *Str.get(), ErrorInfo, + /*MatchingInlineAsm*/ true); // If we had an error parsing the operands, fail gracefully. if (HadError) { DEF_SIMPLE_MSASM(EmptyAsmStr); return Owned(NS); } |