aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/IPO/Inliner.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms/IPO/Inliner.cpp')
-rw-r--r--lib/Transforms/IPO/Inliner.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/Transforms/IPO/Inliner.cpp b/lib/Transforms/IPO/Inliner.cpp
index 8fca96812b..ed5efe22ac 100644
--- a/lib/Transforms/IPO/Inliner.cpp
+++ b/lib/Transforms/IPO/Inliner.cpp
@@ -14,7 +14,6 @@
//===----------------------------------------------------------------------===//
#include "Inliner.h"
-#include "llvm/Constants.h" // ConstantPointerRef should die
#include "llvm/Module.h"
#include "llvm/iOther.h"
#include "llvm/iTerminators.h"
@@ -174,9 +173,9 @@ bool Inliner::doFinalization(CallGraph &CG) {
// If the only remaining use of the function is a dead constant
// pointer ref, remove it.
if (F && F->hasOneUse())
- if (ConstantPointerRef *CPR = dyn_cast<ConstantPointerRef>(F->use_back()))
- if (CPR->use_empty()) {
- CPR->destroyConstant();
+ if (Function *GV = dyn_cast<Function>(F->use_back()))
+ if (GV->removeDeadConstantUsers()) {
+ delete GV;
if (F->hasInternalLinkage()) {
// There *MAY* be an edge from the external call node to this
// function. If so, remove it.