summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2014-06-27 21:07:00 +0000
committerLang Hames <lhames@gmail.com>2014-06-27 21:07:00 +0000
commita677ffeb959e5a49e9a62d652866ceb07b0173a6 (patch)
treeffddb0d1d6d2e2760f15b02b4b9f84dc005eab72 /lib
parentd7be29696dc4dc88c8c0a39ac8cfa8e3da24cb77 (diff)
downloadllvm-a677ffeb959e5a49e9a62d652866ceb07b0173a6.tar.gz
llvm-a677ffeb959e5a49e9a62d652866ceb07b0173a6.tar.bz2
llvm-a677ffeb959e5a49e9a62d652866ceb07b0173a6.tar.xz
[RuntimeDyld] Use a raw_ostream and llvm::format for int-to-string conversions.
Some users' C++11 standard libraries don't support std::to_string yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211961 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp34
1 files changed, 17 insertions, 17 deletions
diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
index c381baf0f5..190bbbf93f 100644
--- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
+++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
@@ -229,28 +229,28 @@ namespace llvm {
"");
unsigned OpIdx = OpIdxExpr.getValue();
- if (OpIdx >= Inst.getNumOperands())
- return std::make_pair(EvalResult(("Invalid operand index '" +
- std::to_string(OpIdx) +
- " for instruction '" + Symbol +
- ". Instruction has only " +
- std::to_string(Inst.getNumOperands())
- + " operands.").str()),
- "");
+ if (OpIdx >= Inst.getNumOperands()) {
+ std::string ErrMsg;
+ raw_string_ostream ErrMsgStream(ErrMsg);
+ ErrMsgStream << "Invalid operand index '" << format("%i", OpIdx)
+ << " for instruction '" << Symbol
+ << ". Instruction has only "
+ << format("%i", Inst.getNumOperands()) << " operands.";
+ return std::make_pair(EvalResult(ErrMsgStream.str()), "");
+ }
const MCOperand &Op = Inst.getOperand(OpIdx);
if (!Op.isImm()) {
- std::string InstrString;
- raw_string_ostream InstrStringStream(InstrString);
- Inst.dump_pretty(InstrStringStream,
+ std::string ErrMsg;
+ raw_string_ostream ErrMsgStream(ErrMsg);
+ ErrMsgStream << "Operand '" << format("%i", OpIdx)
+ << "' of instruction '" << Symbol
+ << "' is not an immediate.\nInstruction is:\n ";
+ Inst.dump_pretty(ErrMsgStream,
Checker.Disassembler->getContext().getAsmInfo(),
Checker.InstPrinter);
- return std::make_pair(EvalResult(("Operand '" + std::to_string(OpIdx) +
- "' of instruction '" + Symbol +
- "' is not an immediate.\n"
- "Instruction is:\n " +
- InstrStringStream.str()).str()),
- "");
+
+ return std::make_pair(EvalResult(ErrMsgStream.str()), "");
}
return std::make_pair(EvalResult(Op.getImm()), RemainingExpr);