From: Bob Wilson Date: Tue, 25 Sep 2012 16:30:16 +0000 (+0000) Subject: Examine the last, not the first, instruction from the MC matcher. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=317d8f339c2ee7b59e0e8cc81646ef664e20532d;p=clang Examine the last, not the first, instruction from the MC matcher. If an MS-style inline asm is matched to multiple instructions, e.g., with a a WAIT-prefix, then we need to examine the operands of the last instruction instruction, not the prefix instruction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164608 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/SemaStmtAsm.cpp b/lib/Sema/SemaStmtAsm.cpp index 922777e07d..792a91332e 100644 --- a/lib/Sema/SemaStmtAsm.cpp +++ b/lib/Sema/SemaStmtAsm.cpp @@ -567,7 +567,7 @@ StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc, SourceLocation LBraceLoc, if (HadError) { DEF_SIMPLE_MSASM(EmptyAsmStr); return Owned(NS); } // Get the instruction descriptor. - llvm::MCInst Inst = Instrs[0]; + llvm::MCInst Inst = Instrs.back(); const llvm::MCInstrInfo *MII = TheTarget->createMCInstrInfo(); const llvm::MCInstrDesc &Desc = MII->get(Inst.getOpcode()); llvm::MCInstPrinter *IP =