diff options
| author | Chris Lattner <sabre@nondot.org> | 2007-02-07 19:31:33 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2007-02-07 19:31:33 +0000 |
| commit | bf6286ba0488ffb9efd85cd4e8ae30cdfda37681 (patch) | |
| tree | b7b87ec5d3a9eae086b565d8e97af25698c8a0ea /llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp | |
| parent | dd602bcd08951f2b846fb5acd1e022af7c49700e (diff) | |
| download | bcm5719-llvm-bf6286ba0488ffb9efd85cd4e8ae30cdfda37681.tar.gz bcm5719-llvm-bf6286ba0488ffb9efd85cd4e8ae30cdfda37681.zip | |
Fix Transforms/DeadArgElim/2007-02-07-FuncRename.ll, fallout from PR411.
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!
llvm-svn: 34005
Diffstat (limited to 'llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp')
| -rw-r--r-- | llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp index 149043d05ce..b39b2508d05 100644 --- a/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp +++ b/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp @@ -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); |

