Reverted back to revision 1.11.  The previous fix doesn't really fix
anything; it just causes the bug to go dormant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10585 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Archive/ArchiveReader.cpp b/lib/Bytecode/Archive/ArchiveReader.cpp
index 1baaff2..b147cb3 100644
--- a/lib/Bytecode/Archive/ArchiveReader.cpp
+++ b/lib/Bytecode/Archive/ArchiveReader.cpp
@@ -122,17 +122,8 @@
       while (endp[-1] == ' ')
         --endp;
     }
-
-    //
-    // We now have the beginning and the end of the object name.
-    // Convert this into a dynamically allocated std::string to pass
-    // to the routines that create the Module object.  We do this
-    // (I think) because the created Module object will outlive this function,
-    // but statically declared std::string's won't.
-    //
     std::string MemberName (startp, endp);
-    std::string * FullMemberName;
-    FullMemberName = new std::string (ArchiveName + "(" + MemberName + ")");
+    std::string FullMemberName = ArchiveName + "(" + MemberName + ")";
 
     switch (getObjectType(Hdr, MemberData, MemberSize)) {
     case SVR4LongFilename:
@@ -142,7 +133,7 @@
       break;
     case UserObject: {
       Module *M = ParseBytecodeBuffer(MemberData, MemberSize,
-                                      *(FullMemberName), ErrorStr);
+                                      FullMemberName, ErrorStr);
       if (!M) return true;
       Objects.push_back(M);
       break;
@@ -153,7 +144,7 @@
       break;
     default:
       std::cerr << "ReadArchiveBuffer: WARNING: Skipping unknown file: "
-                << *(FullMemberName) << "\n";
+                << FullMemberName << "\n";
       break;   // Just ignore unknown files.
     }