simplify some code to avoid string thrashing.
authorChris Lattner <sabre@nondot.org>
Fri, 27 Jun 2008 21:25:24 +0000 (21:25 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 27 Jun 2008 21:25:24 +0000 (21:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52837 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Module.cpp

index 893a5fdcb00d640a5f52b288a8ce4b45688f04a5..94f5d81e0fcf342a892de3d48b1202a20bb78970 100644 (file)
@@ -156,10 +156,12 @@ Constant *Module::getOrInsertFunction(const std::string &Name,
 
   // Okay, the function exists.  Does it have externally visible linkage?
   if (F->hasInternalLinkage()) {
-    // Rename the function.
-    F->setName(SymTab.getUniqueName(F->getName()));
+    // Clear the function's name.
+    F->setName("");
     // Retry, now there won't be a conflict.
-    return getOrInsertFunction(Name, Ty);
+    Constant *NewF = getOrInsertFunction(Name, Ty);
+    F->setName(&Name[0], Name.size());
+    return NewF;
   }
 
   // If the function exists but has the wrong type, return a bitcast to the