diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-02-24 16:58:29 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-02-24 16:58:29 +0000 |
| commit | 08f7d0c262d2cd99ef429d391df3b69dbfff6e32 (patch) | |
| tree | 508eb89d56de3fd081d70d5a9a446bc8176c3a42 | |
| parent | 247a10e72963f877ae69fd9f52672b1d028e98a1 (diff) | |
| download | bcm5719-llvm-08f7d0c262d2cd99ef429d391df3b69dbfff6e32.tar.gz bcm5719-llvm-08f7d0c262d2cd99ef429d391df3b69dbfff6e32.zip | |
Fix some problems where the verifier would crash on invalid input instead of
reporting the problem and exiting.
llvm-svn: 20302
| -rw-r--r-- | llvm/lib/VMCore/AsmWriter.cpp | 9 | ||||
| -rw-r--r-- | llvm/lib/VMCore/Verifier.cpp | 1 |
2 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/VMCore/AsmWriter.cpp b/llvm/lib/VMCore/AsmWriter.cpp index 5406c833a22..b42ccc18471 100644 --- a/llvm/lib/VMCore/AsmWriter.cpp +++ b/llvm/lib/VMCore/AsmWriter.cpp @@ -755,9 +755,12 @@ std::ostream &AssemblyWriter::printTypeAtLeastOneLevel(const Type *Ty) { void AssemblyWriter::writeOperand(const Value *Operand, bool PrintType, bool PrintName) { - assert(Operand != 0 && "Illegal Operand"); - if (PrintType) { Out << ' '; printType(Operand->getType()); } - WriteAsOperandInternal(Out, Operand, PrintName, TypeNames, &Machine); + if (Operand != 0) { + if (PrintType) { Out << ' '; printType(Operand->getType()); } + WriteAsOperandInternal(Out, Operand, PrintName, TypeNames, &Machine); + } else { + Out << "<null operand!>"; + } } diff --git a/llvm/lib/VMCore/Verifier.cpp b/llvm/lib/VMCore/Verifier.cpp index ad1074d8d33..4fae3b72d11 100644 --- a/llvm/lib/VMCore/Verifier.cpp +++ b/llvm/lib/VMCore/Verifier.cpp @@ -592,6 +592,7 @@ void Verifier::visitInstruction(Instruction &I) { for (unsigned i = 0, e = I.getNumOperands(); i != e; ++i) { // Check to make sure that the "address of" an intrinsic function is never // taken. + Assert1(I.getOperand(i) != 0, "Instruction has null operand!", &I); if (Function *F = dyn_cast<Function>(I.getOperand(i))) { Assert1(!F->isIntrinsic() || (i == 0 && isa<CallInst>(I)), "Cannot take the address of an intrinsic!", &I); |

