Fix a use after free.
llvm-svn: 312590
diff --git a/llvm/tools/obj2yaml/elf2yaml.cpp b/llvm/tools/obj2yaml/elf2yaml.cpp
index 3f33fbd..b603cb8 100644
--- a/llvm/tools/obj2yaml/elf2yaml.cpp
+++ b/llvm/tools/obj2yaml/elf2yaml.cpp
@@ -80,11 +80,11 @@
   if (!NameOrErr)
     return NameOrErr;
   StringRef Name = *NameOrErr;
-  std::string Ret = Name;
+  std::string &Ret = SectionNames[SecIndex];
+  Ret = Name;
   while (!UsedSectionNames.insert(Ret).second)
     Ret = (Name + to_string(++Suffix)).str();
-  SectionNames[SecIndex] = Ret;
-  return SectionNames[SecIndex];
+  return Ret;
 }
 
 template <class ELFT> ErrorOr<ELFYAML::Object *> ELFDumper<ELFT>::dump() {