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)
                                     {