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

Duncan Sands baldrick at free.fr
Tue Sep 27 09:43:19 PDT 2011


Author: baldrick
Date: Tue Sep 27 11:43:19 2011
New Revision: 140606

URL: http://llvm.org/viewvc/llvm-project?rev=140606&view=rev
Log:
Have the verifier check that all landingpad operands are constants.

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=140606&r1=140605&r2=140606&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Verifier.cpp (original)
+++ llvm/trunk/lib/VMCore/Verifier.cpp Tue Sep 27 11:43:19 2011
@@ -1449,6 +1449,17 @@
             "Personality function doesn't match others in function", &LPI);
   PersonalityFn = LPI.getPersonalityFn();
 
+  // All operands must be constants.
+  Assert1(isa<Constant>(PersonalityFn), "Personality function is not constant!",
+          &LPI);
+  for (unsigned i = 0, e = LPI.getNumClauses(); i < e; ++i) {
+    Value *Clause = LPI.getClause(i);
+    Assert1(isa<Constant>(Clause), "Clause is not constant!", &LPI);
+    if (LPI.isFilter(i))
+      Assert1(isa<ConstantArray>(Clause) || isa<ConstantAggregateZero>(Clause),
+              "Filter is not an array of constants!", &LPI);
+  }
+
   visitInstruction(LPI);
 }
 





More information about the llvm-commits mailing list