Fixed an issue with the Instruction subclasses where the strings might
be fetched too many times and the DisassemblerLLVM was appending to strings
when the opcode, mnemonic and comment accessors were called multiple times
and if any of the strings were empty.

Also fixed the test suite failures from recent Objective C modifications.

llvm-svn: 148460
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index 529fe42..50ee738 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -4898,8 +4898,13 @@
                         if (tag == DW_TAG_subprogram)
                         {
                             ConstString class_name;
-                            if (ObjCLanguageRuntime::ParseMethodName (type_name_cstr, NULL, NULL, NULL, &class_name))
+                            ConstString class_name_no_category;
+                            if (ObjCLanguageRuntime::ParseMethodName (type_name_cstr, &class_name, NULL, NULL, &class_name_no_category))
                             {
+                                // Use the class name with no category if there is one
+                                if (class_name_no_category)
+                                    class_name = class_name_no_category;
+
                                 SymbolContext empty_sc;
                                 clang_type_t class_opaque_type = NULL;
                                 if (class_name)