Add verification of union types.
authorNick Lewycky <nicholas@mxc.ca>
Sat, 6 Mar 2010 20:26:48 +0000 (20:26 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Sat, 6 Mar 2010 20:26:48 +0000 (20:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97889 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Verifier.cpp

index 35625a5939636c6c013d8124c87b1622147e566f..721e96a0f552a63d7026087d34529d42fe2ad1e7 100644 (file)
@@ -1525,6 +1525,15 @@ void Verifier::VerifyType(const Type *Ty) {
       VerifyType(ElTy);
     }
   } break;
+  case Type::UnionTyID: {
+    const UnionType *UTy = cast<UnionType>(Ty);
+    for (unsigned i = 0, e = UTy->getNumElements(); i != e; ++i) {
+      const Type *ElTy = UTy->getElementType(i);
+      Assert2(UnionType::isValidElementType(ElTy),
+              "Union type with invalid element type", ElTy, UTy);
+      VerifyType(ElTy);
+    }
+  } break;
   case Type::ArrayTyID: {
     const ArrayType *ATy = cast<ArrayType>(Ty);
     Assert1(ArrayType::isValidElementType(ATy->getElementType()),