[llvm] r213202 - [MCJIT] Improve a RuntimeDyldChecker diagnostic.

Lang Hames lhames at gmail.com
Wed Jul 16 15:02:20 PDT 2014


Author: lhames
Date: Wed Jul 16 17:02:20 2014
New Revision: 213202

URL: http://llvm.org/viewvc/llvm-project?rev=213202&view=rev
Log:
[MCJIT] Improve a RuntimeDyldChecker diagnostic.

When a RuntimeDyldChecker test requests an invalid operand for an instruction,
print the decoded instruction to aid diagnosis.


Modified:
    llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp

Modified: llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp?rev=213202&r1=213201&r2=213202&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp Wed Jul 16 17:02:20 2014
@@ -233,9 +233,13 @@ namespace llvm {
         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.";
+                     << "' for instruction '" << Symbol
+                     << "'. Instruction has only "
+                     << format("%i", Inst.getNumOperands())
+                     << " operands.\nInstruction is:\n  ";
+        Inst.dump_pretty(ErrMsgStream,
+                         Checker.Disassembler->getContext().getAsmInfo(),
+                         Checker.InstPrinter);
         return std::make_pair(EvalResult(ErrMsgStream.str()), "");
       }
 





More information about the llvm-commits mailing list