Added an extra way to chop up an objective C prototype and use it where necessary.
llvm-svn: 148445
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
index 185a5cc..f13bba5 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp
@@ -737,12 +737,16 @@
ConstString objc_class_name;
ConstString objc_selector_name;
ConstString objc_fullname_no_category_name;
+ ConstString objc_class_name_no_category;
if (ObjCLanguageRuntime::ParseMethodName (name,
&objc_class_name,
&objc_selector_name,
- &objc_fullname_no_category_name))
+ &objc_fullname_no_category_name,
+ &objc_class_name_no_category))
{
objc_class_selectors.Insert(objc_class_name, die.GetOffset());
+ if (objc_class_name_no_category)
+ objc_class_selectors.Insert(objc_class_name_no_category, die.GetOffset());
func_selectors.Insert (objc_selector_name, die.GetOffset());
func_fullnames.Insert (ConstString(name), die.GetOffset());
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index 671afdd8..7ebd026 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -4898,17 +4898,14 @@
if (tag == DW_TAG_subprogram)
{
ConstString class_name;
-
- if (ObjCLanguageRuntime::ParseMethodName (type_name_cstr, &class_name, NULL, NULL))
+ if (ObjCLanguageRuntime::ParseMethodName (type_name_cstr, NULL, NULL, NULL, &class_name))
{
SymbolContext empty_sc;
clang_type_t class_opaque_type = NULL;
if (class_name)
{
TypeList types;
- TypeSP complete_objc_class_type_sp (FindCompleteObjCDefinitionTypeForDIE (NULL, class_name, true));
- if (!complete_objc_class_type_sp)
- complete_objc_class_type_sp = FindCompleteObjCDefinitionTypeForDIE (NULL, class_name, false);
+ TypeSP complete_objc_class_type_sp (FindCompleteObjCDefinitionTypeForDIE (NULL, class_name, false));
if (complete_objc_class_type_sp)
{