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
This commit is contained in:
Manman Ren
2013-07-25 19:33:30 +00:00
parent b0122be8c3
commit cb420a4bc0
24 changed files with 174 additions and 162 deletions

View File

@ -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 &&