From cb420a4bc066b0b85e50b0c362ae20519d28788c Mon Sep 17 00:00:00 2001 From: Manman Ren Date: Thu, 25 Jul 2013 19:33:30 +0000 Subject: Debug Info: improve the verifier to check field types. Make sure the context field of DIType is MDNode. Fix testing cases to make them pass the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187150 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/IR/DebugInfo.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib') diff --git a/lib/IR/DebugInfo.cpp b/lib/IR/DebugInfo.cpp index d171fc6..bbdff5e 100644 --- a/lib/IR/DebugInfo.cpp +++ b/lib/IR/DebugInfo.cpp @@ -420,6 +420,10 @@ static bool fieldIsMDNode(const MDNode *DbgNode, unsigned Elt) { bool DIType::Verify() const { if (!isType()) return false; + // Make sure Context @ field 2 is MDNode. + if (!fieldIsMDNode(DbgNode, 2)) + return false; + // FIXME: Sink this into the various subclass verifies. unsigned Tag = getTag(); if (!isBasicType() && Tag != dwarf::DW_TAG_const_type && -- cgit v1.1