Fix Transforms/DeadArgElim/2007-02-07-FuncRename.ll, fallout from PR411.
authorChris Lattner <sabre@nondot.org>
Wed, 7 Feb 2007 19:31:33 +0000 (19:31 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 7 Feb 2007 19:31:33 +0000 (19:31 +0000)
This happened because deadargelim now causes VMCore to auto-rename every
function that it hacks arguments out of.  Because it hacks arguments out of
functions in a non-deterministic order, this caused the resultant numbering
to be nondet.  The fix is to just be careful to not rename functions!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34005 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/DeadArgumentElimination.cpp

index 149043d05ce7f40ae57f9b10b845397617b08ac3..b39b2508d05f403b88286f402e9e03673acb3928 100644 (file)
@@ -150,7 +150,8 @@ bool DAE::DeleteDeadVarargs(Function &Fn) {
   unsigned NumArgs = Params.size();
   
   // Create the new function body and insert it into the module...
-  Function *NF = new Function(NFTy, Fn.getLinkage(), Fn.getName());
+  std::string Name = Fn.getName(); Fn.setName("");
+  Function *NF = new Function(NFTy, Fn.getLinkage(), Name);
   NF->setCallingConv(Fn.getCallingConv());
   Fn.getParent()->getFunctionList().insert(&Fn, NF);
   
@@ -508,7 +509,8 @@ void DAE::RemoveDeadArgumentsFromFunction(Function *F) {
   FunctionType *NFTy = FunctionType::get(RetTy, Params, FTy->isVarArg());
 
   // Create the new function body and insert it into the module...
-  Function *NF = new Function(NFTy, F->getLinkage(), F->getName());
+  std::string Name = F->getName(); F->setName("");
+  Function *NF = new Function(NFTy, F->getLinkage(), Name);
   NF->setCallingConv(F->getCallingConv());
   F->getParent()->getFunctionList().insert(F, NF);