diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-09-11 23:53:48 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-09-11 23:53:48 +0000 |
commit | 80da77edee263ce7afb1e1320496fc3619fe12c4 (patch) | |
tree | a3f9f56cfa866b431281d24d3c8f137343f3266d | |
parent | 8742d7c84a45988b9d6e1f6ad38b2242b800c2bd (diff) |
[ms-inline asm] isDef/NumDefs in this context only refer to register definitions, not memory definitions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163666 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/SemaStmtAsm.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/Sema/SemaStmtAsm.cpp b/lib/Sema/SemaStmtAsm.cpp index 2d20d6afcc..3f57a6ec03 100644 --- a/lib/Sema/SemaStmtAsm.cpp +++ b/lib/Sema/SemaStmtAsm.cpp @@ -595,10 +595,9 @@ StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc, } const llvm::MCOperand &Op = Inst.getOperand(MCIdx); - bool isDef = NumDefs && (MCIdx < NumDefs); // Register/Clobber. - if (Op.isReg() && isDef) { + if (Op.isReg() && NumDefs && (MCIdx < NumDefs)) { std::string Reg; llvm::raw_string_ostream OS(Reg); IP->printRegName(OS, Op.getReg()); @@ -628,7 +627,7 @@ StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc, false, false); if (!Result.isInvalid()) { bool isMemDef = (i == 1) && Desc.mayStore(); - if (isDef || isMemDef) { + if (isMemDef) { Outputs.push_back(II); OutputExprs.push_back(Result.take()); OutputExprNames.push_back(Name.str()); |