aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms')
-rw-r--r--lib/Transforms/NaCl/GlobalCleanup.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Transforms/NaCl/GlobalCleanup.cpp b/lib/Transforms/NaCl/GlobalCleanup.cpp
index 9a28063af6..00e15b39a5 100644
--- a/lib/Transforms/NaCl/GlobalCleanup.cpp
+++ b/lib/Transforms/NaCl/GlobalCleanup.cpp
@@ -56,6 +56,10 @@ static bool CleanUpLinkage(GlobalValue *GV) {
GV->eraseFromParent();
return true;
}
+ case GlobalValue::WeakAnyLinkage: {
+ GV->setLinkage(GlobalValue::InternalLinkage);
+ return true;
+ }
default:
// default with fall through to avoid compiler warning
return false;
@@ -80,6 +84,11 @@ bool GlobalCleanup::runOnModule(Module &M) {
GlobalVariable *GV = I++;
Modified |= CleanUpLinkage(GV);
}
+
+ for (Module::iterator I = M.begin(), E = M.end(); I != E; ) {
+ Function *F = I++;
+ Modified |= CleanUpLinkage(F);
+ }
return Modified;
}