forked from OSchip/llvm-project
Updates the DW_AT_data_member_location handlers for the LLDB DWARF plugin
to handle the case of an integer constant (DWARF 3 and later). - Fixes tests that assert in RecordLayoutBuilder::updateExternalFieldOffset because LLDB was providing an external AST source with missing member offsets. llvm-svn: 187423
This commit is contained in:
parent
5334ed2d25
commit
a4658a5c86
|
@ -1780,6 +1780,13 @@ SymbolFileDWARF::ParseChildMembers
|
|||
member_byte_offset = memberOffset.ResolveValue(NULL).UInt();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// With DWARF 3 and later, if the value is an integer constant,
|
||||
// this form value is the offset in bytes from the beginning
|
||||
// of the containing entity.
|
||||
member_byte_offset = form_value.Unsigned();
|
||||
}
|
||||
break;
|
||||
|
||||
case DW_AT_accessibility: accessibility = DW_ACCESS_to_AccessType (form_value.Unsigned()); break;
|
||||
|
@ -2164,16 +2171,28 @@ SymbolFileDWARF::ParseChildMembers
|
|||
member_byte_offset = memberOffset.ResolveValue(NULL).UInt();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// With DWARF 3 and later, if the value is an integer constant,
|
||||
// this form value is the offset in bytes from the beginning
|
||||
// of the containing entity.
|
||||
member_byte_offset = form_value.Unsigned();
|
||||
}
|
||||
break;
|
||||
|
||||
case DW_AT_accessibility:
|
||||
accessibility = DW_ACCESS_to_AccessType(form_value.Unsigned());
|
||||
break;
|
||||
|
||||
case DW_AT_virtuality: is_virtual = form_value.Boolean(); break;
|
||||
default:
|
||||
case DW_AT_virtuality:
|
||||
is_virtual = form_value.Boolean();
|
||||
break;
|
||||
|
||||
case DW_AT_sibling:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2620,7 +2639,7 @@ SymbolFileDWARF::ResolveClangOpaqueTypeDefinition (ClangASTType &clang_type)
|
|||
assert(false && "not a forward clang type decl!");
|
||||
break;
|
||||
}
|
||||
return NULL;
|
||||
return false;
|
||||
}
|
||||
|
||||
Type*
|
||||
|
|
Loading…
Reference in New Issue