have the verifier catch gep's into opaque struct types. PR10473
authorChris Lattner <sabre@nondot.org>
Fri, 29 Jul 2011 20:32:28 +0000 (20:32 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 29 Jul 2011 20:32:28 +0000 (20:32 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136510 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Verifier.cpp

index 905e9a26233988b3b00c15f89c61e1f20a0e6d3b..d405baa630b6b51e923de74f8cbb0de7f7645c8c 100644 (file)
@@ -1288,6 +1288,10 @@ void Verifier::visitShuffleVectorInst(ShuffleVectorInst &SV) {
 }
 
 void Verifier::visitGetElementPtrInst(GetElementPtrInst &GEP) {
+  Assert1(cast<PointerType>(GEP.getOperand(0)->getType())
+            ->getElementType()->isSized(),
+          "GEP into unsized type!", &GEP);
+  
   SmallVector<Value*, 16> Idxs(GEP.idx_begin(), GEP.idx_end());
   Type *ElTy =
     GetElementPtrInst::getIndexedType(GEP.getOperand(0)->getType(), Idxs);