[llvm-commits] [llvm] r46900 - /llvm/trunk/lib/VMCore/Verifier.cpp

Chris Lattner sabre at nondot.org
Fri Feb 8 17:06:02 PST 2008


Author: lattner
Date: Fri Feb  8 19:06:01 2008
New Revision: 46900

URL: http://llvm.org/viewvc/llvm-project?rev=46900&view=rev
Log:
check that terminators only occur at the end of a block.  This catches the
common problem of putting two terminators in the same block.  I can't write
a testcase for this because the .ll parser rejects this before the verifier
can, but this can occur when generating IR.

Modified:
    llvm/trunk/lib/VMCore/Verifier.cpp

Modified: llvm/trunk/lib/VMCore/Verifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=46900&r1=46899&r2=46900&view=diff

==============================================================================
--- llvm/trunk/lib/VMCore/Verifier.cpp (original)
+++ llvm/trunk/lib/VMCore/Verifier.cpp Fri Feb  8 19:06:01 2008
@@ -1051,6 +1051,11 @@
               !DT->dominates(&BB->getParent()->getEntryBlock(), BB),
               "Only PHI nodes may reference their own value!", &I);
   }
+  
+  // Verify that if this is a terminator that it is at the end of the block.
+  if (isa<TerminatorInst>(I))
+    Assert1(BB->getTerminator() == &I, "Terminator not at end of block!", &I);
+  
 
   // Check that void typed values don't have names
   Assert1(I.getType() != Type::VoidTy || !I.hasName(),





More information about the llvm-commits mailing list