Fix segfault in UniqueDWARFASTTypeList::Find if we are comparing

an anonymous struct type (which lacks any name).

llvm-svn: 140917
This commit is contained in:
Jason Molenda 2011-10-01 01:28:37 +00:00
parent caa500bf93
commit 90455f3357
1 changed files with 9 additions and 2 deletions

View File

@ -59,10 +59,17 @@ UniqueDWARFASTTypeList::Find
case DW_TAG_namespace: case DW_TAG_namespace:
{ {
const char *parent_arg_die_name = parent_arg_die->GetName(symfile, cu); const char *parent_arg_die_name = parent_arg_die->GetName(symfile, cu);
const char *parent_pos_die_name = parend_pos_die->GetName(pos->m_symfile, pos->m_cu); if (parent_arg_die_name == NULL) // Anonymous (i.e. no-name) struct
if (strcmp (parent_arg_die_name, parent_pos_die_name)) {
match = false; match = false;
} }
else
{
const char *parent_pos_die_name = parend_pos_die->GetName(pos->m_symfile, pos->m_cu);
if (parent_pos_die_name == NULL || strcmp (parent_arg_die_name, parent_pos_die_name))
match = false;
}
}
break; break;
case DW_TAG_compile_unit: case DW_TAG_compile_unit: