From 4e4d8624c5c44578d64fe1344670520cceec03f2 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 20 Nov 2003 00:09:43 +0000 Subject: [PATCH] Don't crash if we are printing an orphaned basic block! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10100 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/AsmWriter.cpp | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp index 2c36ed98cb7..1823412755b 100644 --- a/lib/VMCore/AsmWriter.cpp +++ b/lib/VMCore/AsmWriter.cpp @@ -750,20 +750,24 @@ void AssemblyWriter::printBasicBlock(const BasicBlock *BB) { else Out << ""; } - - if (BB != &BB->getParent()->front()) { // Not the entry block? - // Output predecessors for the block... - Out << "\t\t;"; - pred_const_iterator PI = pred_begin(BB), PE = pred_end(BB); - - if (PI == PE) { - Out << " No predecessors!"; - } else { - Out << " preds ="; - writeOperand(*PI, false, true); - for (++PI; PI != PE; ++PI) { - Out << ","; + + if (BB->getParent() == 0) + Out << "\t\t; Error: Block without parent!"; + else { + if (BB != &BB->getParent()->front()) { // Not the entry block? + // Output predecessors for the block... + Out << "\t\t;"; + pred_const_iterator PI = pred_begin(BB), PE = pred_end(BB); + + if (PI == PE) { + Out << " No predecessors!"; + } else { + Out << " preds ="; writeOperand(*PI, false, true); + for (++PI; PI != PE; ++PI) { + Out << ","; + writeOperand(*PI, false, true); + } } } }