Make sure to check for a very bad class of errors: an instruction

that does not dominate all of its users, but is in the same basic block as
its users.  This class of error is what caused the mysterious CBE only
failures last night.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12979 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-04-16 05:51:47 +00:00
parent bf3d2e2683
commit e1f0cf179f

View File

@ -559,6 +559,12 @@ void Verifier::visitInstruction(Instruction &I) {
// exceptional destination.
if (InvokeInst *II = dyn_cast<InvokeInst>(Op))
OpBlock = II->getNormalDest();
else if (OpBlock == BB) {
// If they are in the same basic block, make sure that the definition
// comes before the use.
Assert2(DS->dominates(Op, &I),
"Instruction does not dominate all uses!", Op, &I);
}
// Definition must dominate use unless use is unreachable!
Assert2(DS->dominates(OpBlock, BB) ||