diff options
author | Chris Lattner <sabre@nondot.org> | 2007-10-18 18:49:29 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-10-18 18:49:29 +0000 |
commit | 1d432ca4a7d0310c0bf3722cad04ea8225070eaa (patch) | |
tree | 615674437e195d50c48e60daba3960891954aa86 /lib/Transforms/IPO/DeadArgumentElimination.cpp | |
parent | 44b7d0a62a2442e314f3758d6127918fc97e5e65 (diff) | |
download | external_llvm-1d432ca4a7d0310c0bf3722cad04ea8225070eaa.zip external_llvm-1d432ca4a7d0310c0bf3722cad04ea8225070eaa.tar.gz external_llvm-1d432ca4a7d0310c0bf3722cad04ea8225070eaa.tar.bz2 |
Fix PR1735 and Transforms/DeadArgElim/2007-10-18-VarargsReturn.ll by
fixing some obviously broken code :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43141 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO/DeadArgumentElimination.cpp')
-rw-r--r-- | lib/Transforms/IPO/DeadArgumentElimination.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/Transforms/IPO/DeadArgumentElimination.cpp b/lib/Transforms/IPO/DeadArgumentElimination.cpp index dd5d668..8dd0925 100644 --- a/lib/Transforms/IPO/DeadArgumentElimination.cpp +++ b/lib/Transforms/IPO/DeadArgumentElimination.cpp @@ -168,7 +168,7 @@ bool DAE::DeleteDeadVarargs(Function &Fn) { CallSite CS = CallSite::get(Fn.use_back()); Instruction *Call = CS.getInstruction(); - // Loop over the operands, dropping extraneous ones at the end of the list. + // Pass all the same arguments. Args.assign(CS.arg_begin(), CS.arg_begin()+NumArgs); Instruction *New; @@ -185,13 +185,13 @@ bool DAE::DeleteDeadVarargs(Function &Fn) { Args.clear(); if (!Call->use_empty()) - Call->replaceAllUsesWith(Constant::getNullValue(Call->getType())); + Call->replaceAllUsesWith(New); New->takeName(Call); // Finally, remove the old call from the program, reducing the use-count of // F. - Call->getParent()->getInstList().erase(Call); + Call->eraseFromParent(); } // Since we have now created the new function, splice the body of the old |