From: Chris Lattner Date: Tue, 16 Jul 2002 17:33:13 +0000 (+0000) Subject: * Add assertion to ExprTypeConvert to detect error earlier than without it X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=131454e91d51c01fa0193630390116ab55c7886e;p=oota-llvm.git * Add assertion to ExprTypeConvert to detect error earlier than without it * Fix bug in LevelRaise.cpp, correcting this problem: test/Regression/Transforms/LevelRaise/2002-07-16-RaiseCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2920 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/ExprTypeConvert.cpp b/lib/Transforms/ExprTypeConvert.cpp index a6106b08227..eea8607ed08 100644 --- a/lib/Transforms/ExprTypeConvert.cpp +++ b/lib/Transforms/ExprTypeConvert.cpp @@ -903,6 +903,7 @@ static void ConvertOperandToType(User *U, Value *OldVal, Value *NewVal, Instruction *I = cast(U); // Only Instructions convertable BasicBlock *BB = I->getParent(); + assert(BB != 0 && "Instruction not embedded in basic block!"); BasicBlock::InstListType &BIL = BB->getInstList(); std::string Name = I->getName(); if (!Name.empty()) I->setName(""); Instruction *Res; // Result of conversion diff --git a/lib/Transforms/LevelRaise.cpp b/lib/Transforms/LevelRaise.cpp index afc2ad5d7a6..2b9ff6d41b2 100644 --- a/lib/Transforms/LevelRaise.cpp +++ b/lib/Transforms/LevelRaise.cpp @@ -227,6 +227,7 @@ static bool PeepholeOptimize(BasicBlock *BB, BasicBlock::iterator &BI) { // source type of the cast... // ConvertedTypes.clear(); + ConvertedTypes[CI] = Src->getType(); // Make sure the cast _does_ change if (ValueConvertableToType(CI, Src->getType(), ConvertedTypes)) { PRINT_PEEPHOLE3("CAST-DEST-EXPR-CONV:in ", Src, CI, BB->getParent());