summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorGabor Greif <ggreif@gmail.com>2010-04-10 03:45:50 +0000
committerGabor Greif <ggreif@gmail.com>2010-04-10 03:45:50 +0000
commitd394aec87d92085ca145e0b12ccc7927d8bb7231 (patch)
treeffd79c90fae26a4da9ce6981f39d6465048876ef /clang/lib/CodeGen/CodeGenModule.cpp
parentd0ef1346f3e219ff55f3f4cb6cfcade6547ff933 (diff)
downloadbcm5719-llvm-d394aec87d92085ca145e0b12ccc7927d8bb7231.tar.gz
bcm5719-llvm-d394aec87d92085ca145e0b12ccc7927d8bb7231.zip
rely even less on CallInst internals
llvm-svn: 100919
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 2dd2d583087..3a59c4cf3de 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -1203,11 +1203,11 @@ static void ReplaceUsesOfNonProtoTypeWithRealFunction(llvm::GlobalValue *Old,
llvm::SmallVector<llvm::Value*, 4> ArgList;
for (llvm::Value::use_iterator UI = OldFn->use_begin(), E = OldFn->use_end();
- UI != E; ) {
+ UI != E; ++UI) {
// TODO: Do invokes ever occur in C code? If so, we should handle them too.
- unsigned OpNo = UI.getOperandNo();
- llvm::CallInst *CI = dyn_cast<llvm::CallInst>(*UI++);
- if (!CI || OpNo != 0) continue;
+ llvm::CallInst *CI = dyn_cast<llvm::CallInst>(*UI);
+ llvm::CallSite CS(CI);
+ if (!CI || !CS.isCallee(UI)) continue;
// If the return types don't match exactly, and if the call isn't dead, then
// we can't transform this call.
@@ -1221,8 +1221,8 @@ static void ReplaceUsesOfNonProtoTypeWithRealFunction(llvm::GlobalValue *Old,
bool DontTransform = false;
for (llvm::Function::arg_iterator AI = NewFn->arg_begin(),
E = NewFn->arg_end(); AI != E; ++AI, ++ArgNo) {
- if (CI->getNumOperands()-1 == ArgNo ||
- CI->getOperand(ArgNo+1)->getType() != AI->getType()) {
+ if (CS.arg_size() == ArgNo ||
+ CS.getArgument(ArgNo)->getType() != AI->getType()) {
DontTransform = true;
break;
}
@@ -1232,7 +1232,6 @@ static void ReplaceUsesOfNonProtoTypeWithRealFunction(llvm::GlobalValue *Old,
// Okay, we can transform this. Create the new call instruction and copy
// over the required information.
- llvm::CallSite CS(CI);
ArgList.append(CS.arg_begin(), CS.arg_begin() + ArgNo);
llvm::CallInst *NewCall = llvm::CallInst::Create(NewFn, ArgList.begin(),
ArgList.end(), "", CI);
OpenPOWER on IntegriCloud