From fc8b32455d5879202d5ce2e6f6a9014f0be7b2e7 Mon Sep 17 00:00:00 2001 From: Manman Ren Date: Tue, 23 Jul 2013 18:14:25 +0000 Subject: [PATCH] DebugInfo Verifier: verify the actual type. llvm-svn: 186972 --- llvm/lib/IR/DebugInfo.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp index 9d88ce0e..28b703f 100644 --- a/llvm/lib/IR/DebugInfo.cpp +++ b/llvm/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; } -- 2.7.4