Fixed an issue where we were trying to resolve lldb_private::Type encoding

types to their full definitions more than we needed to. This caused an assertion
in the DWARF parser to fire -- which is an indication that we are parsing too much.

llvm-svn: 119020
This commit is contained in:
Greg Clayton 2010-11-14 01:03:55 +00:00
parent d7e054694e
commit 32d2a48369
1 changed files with 12 additions and 9 deletions

View File

@ -537,17 +537,20 @@ lldb_private::Type::ResolveClangType (ResolveState clang_type_resolve_state)
encoding_type = GetEncodingType();
if (encoding_type)
{
ResolveState encoding_clang_type_resolve_state = eResolveStateFull;
switch (m_encoding_uid_type)
ResolveState encoding_clang_type_resolve_state = clang_type_resolve_state;
if (clang_type_resolve_state == eResolveStateLayout)
{
case eEncodingIsPointerUID:
case eEncodingIsLValueReferenceUID:
case eEncodingIsRValueReferenceUID:
if (clang_type_resolve_state == eResolveStateLayout)
switch (m_encoding_uid_type)
{
case eEncodingIsPointerUID:
case eEncodingIsLValueReferenceUID:
case eEncodingIsRValueReferenceUID:
encoding_clang_type_resolve_state = eResolveStateForward;
break;
default:
break;
break;
default:
break;
}
}
encoding_type->ResolveClangType (encoding_clang_type_resolve_state);
}