A small fix for ObjectFileMachO::ParseSymtab() where a pointer
into the middle of a vector was being used after the vector may
have been resized.  
<rdar://problem/11284937>



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@155421 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
index 523acd8..c9b9023 100644
--- a/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+++ b/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
@@ -2236,10 +2236,14 @@
                                     else
                                     {
                                         // Make a synthetic symbol to describe the trampoline stub
+                                        Mangled stub_symbol_mangled_name(stub_symbol->GetMangled());
                                         if (sym_idx >= num_syms)
+                                        {
                                             sym = symtab->Resize (++num_syms);
+                                            stub_symbol = NULL;  // this pointer no longer valid
+                                        }
                                         sym[sym_idx].SetID (synthetic_sym_id++);
-                                        sym[sym_idx].GetMangled() = stub_symbol->GetMangled();
+                                        sym[sym_idx].GetMangled() = stub_symbol_mangled_name;
                                         sym[sym_idx].SetType (eSymbolTypeTrampoline);
                                         sym[sym_idx].SetIsSynthetic (true);
                                         sym[sym_idx].GetAddress() = so_addr;