Update example to new syntax.
authorNick Lewycky <nicholas@mxc.ca>
Fri, 28 Mar 2008 06:46:51 +0000 (06:46 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Fri, 28 Mar 2008 06:46:51 +0000 (06:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48910 91177308-0d34-0410-b5e6-96231b3b80d8

docs/Passes.html
lib/VMCore/Verifier.cpp

index 3492a2797092ea4338e62da4d8563941a341cfc8..a01b754d70dbca64366861faf82ee4b814230948 100644 (file)
@@ -1864,7 +1864,7 @@ if (i == j)
     <li>The code is in valid SSA form.</li>
     <li>It should be illegal to put a label into any other type (like a
         structure) or to return one. [except constant arrays!]</li>
     <li>The code is in valid SSA form.</li>
     <li>It should be illegal to put a label into any other type (like a
         structure) or to return one. [except constant arrays!]</li>
-    <li>Only phi nodes can be self referential: <tt>%x = add int %x, %x</tt> is
+    <li>Only phi nodes can be self referential: <tt>%x = add i32 %x, %x</tt> is
         invalid.</li>
     <li>PHI nodes must have an entry for each predecessor, with no extras.</li>
     <li>PHI nodes must be the first thing in a basic block, all grouped
         invalid.</li>
     <li>PHI nodes must have an entry for each predecessor, with no extras.</li>
     <li>PHI nodes must be the first thing in a basic block, all grouped
index 4ac8c0f3a482426c8f920190de8fa79cae1b05ec..7ec0cf3a4582c7330fc2006289aa5d6d48fc76a5 100644 (file)
@@ -21,7 +21,7 @@
 //  * The code is in valid SSA form
 //  * It should be illegal to put a label into any other type (like a structure)
 //    or to return one. [except constant arrays!]
 //  * The code is in valid SSA form
 //  * It should be illegal to put a label into any other type (like a structure)
 //    or to return one. [except constant arrays!]
-//  * Only phi nodes can be self referential: 'add int %0, %0 ; <int>:0' is bad
+//  * Only phi nodes can be self referential: 'add i32 %0, %0 ; <int>:0' is bad
 //  * PHI nodes must have an entry for each predecessor, with no extras.
 //  * PHI nodes must be the first thing in a basic block, all grouped together
 //  * PHI nodes must have at least one entry
 //  * PHI nodes must have an entry for each predecessor, with no extras.
 //  * PHI nodes must be the first thing in a basic block, all grouped together
 //  * PHI nodes must have at least one entry
@@ -530,6 +530,12 @@ void Verifier::visitBasicBlock(BasicBlock &BB) {
   // Ensure that basic blocks have terminators!
   Assert1(BB.getTerminator(), "Basic Block does not have terminator!", &BB);
 
   // Ensure that basic blocks have terminators!
   Assert1(BB.getTerminator(), "Basic Block does not have terminator!", &BB);
 
+  // Ensure that the BB doesn't point out of its Function for unwinding.
+  Assert2(!BB.getUnwindDest() ||
+          BB.getUnwindDest()->getParent() == BB.getParent(),
+          "Basic Block unwinds to block in different function!",
+          &BB, BB.getUnwindDest());
+
   // Check constraints that this basic block imposes on all of the PHI nodes in
   // it.
   if (isa<PHINode>(BB.front())) {
   // Check constraints that this basic block imposes on all of the PHI nodes in
   // it.
   if (isa<PHINode>(BB.front())) {
@@ -1217,7 +1223,7 @@ void Verifier::visitInstruction(Instruction &I) {
         }
 
         // Definition must dominate use unless use is unreachable!
         }
 
         // Definition must dominate use unless use is unreachable!
-        Assert2(DT->dominates(OpBlock, BB) ||
+        Assert2(DT->dominates(Op, &I) ||
                 !DT->dominates(&BB->getParent()->getEntryBlock(), BB),
                 "Instruction does not dominate all uses!", Op, &I);
       } else {
                 !DT->dominates(&BB->getParent()->getEntryBlock(), BB),
                 "Instruction does not dominate all uses!", Op, &I);
       } else {