From: Manman Ren Date: Tue, 23 Jul 2013 18:14:25 +0000 (+0000) Subject: DebugInfo Verifier: verify the actual type. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=9fd6178dec9531fd44420e2bd121a36a1b9781fc;p=oota-llvm.git DebugInfo Verifier: verify the actual type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186972 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/IR/DebugInfo.cpp b/lib/IR/DebugInfo.cpp index 9d88ce0e50b..28b703f6473 100644 --- a/lib/IR/DebugInfo.cpp +++ b/lib/IR/DebugInfo.cpp @@ -458,6 +458,16 @@ bool DIType::Verify() const { Tag != dwarf::DW_TAG_friend && getFilename().empty()) return false; + // DIType is abstract, it should be a BasicType, a DerivedType or + // a CompositeType. + if (isBasicType()) + DIBasicType(DbgNode).Verify(); + else if (isCompositeType()) + DICompositeType(DbgNode).Verify(); + else if (isDerivedType()) + DIDerivedType(DbgNode).Verify(); + else + return false; return true; }