aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/IPO/MergeFunctions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms/IPO/MergeFunctions.cpp')
-rw-r--r--lib/Transforms/IPO/MergeFunctions.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Transforms/IPO/MergeFunctions.cpp b/lib/Transforms/IPO/MergeFunctions.cpp
index d4ecd55d03..30afaab47c 100644
--- a/lib/Transforms/IPO/MergeFunctions.cpp
+++ b/lib/Transforms/IPO/MergeFunctions.cpp
@@ -798,8 +798,10 @@ bool MergeFunctions::runOnModule(Module &M) {
TD = getAnalysisIfAvailable<TargetData>();
for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) {
- Deferred.push_back(WeakVH(I));
+ if (!I->isDeclaration() && !I->hasAvailableExternallyLinkage())
+ Deferred.push_back(WeakVH(I));
}
+ FnSet.resize(Deferred.size());
do {
std::vector<WeakVH> Worklist;