aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/IPO/FunctionResolution.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms/IPO/FunctionResolution.cpp')
-rw-r--r--lib/Transforms/IPO/FunctionResolution.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/lib/Transforms/IPO/FunctionResolution.cpp b/lib/Transforms/IPO/FunctionResolution.cpp
index 861e810601..75159eaaf7 100644
--- a/lib/Transforms/IPO/FunctionResolution.cpp
+++ b/lib/Transforms/IPO/FunctionResolution.cpp
@@ -188,17 +188,9 @@ static bool ResolveFunctions(Module &M, std::vector<GlobalValue*> &Globals,
++i;
}
} else if (ConstantPointerRef *CPR = dyn_cast<ConstantPointerRef>(U)) {
- if (CPR->use_size() == 1 && isa<ConstantExpr>(CPR->use_back()) &&
- cast<ConstantExpr>(CPR->use_back())->getOpcode() ==
- Instruction::Cast) {
- ConstantExpr *CE = cast<ConstantExpr>(CPR->use_back());
- Constant *NewCPR = ConstantPointerRef::get(Concrete);
- CE->replaceAllUsesWith(ConstantExpr::getCast(NewCPR,CE->getType()));
- CPR->destroyConstant();
- } else {
- std::cerr << "Cannot convert use of function: " << CPR << "\n";
- ++i;
- }
+ Constant *NewCPR = ConstantPointerRef::get(Concrete);
+ CPR->replaceAllUsesWith(ConstantExpr::getCast(NewCPR,CPR->getType()));
+ CPR->destroyConstant();
} else {
std::cerr << "Cannot convert use of function: " << U << "\n";
++i;