diff options
-rw-r--r-- | tools/bugpoint/ExtractFunction.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tools/bugpoint/ExtractFunction.cpp b/tools/bugpoint/ExtractFunction.cpp index 452ddbc..ac89362 100644 --- a/tools/bugpoint/ExtractFunction.cpp +++ b/tools/bugpoint/ExtractFunction.cpp @@ -78,6 +78,11 @@ Module *BugDriver::deleteInstructionFromProgram(Instruction *I, /// Module *BugDriver::performFinalCleanups() const { Module *M = CloneModule(Program); + + // Make all functions external, so GlobalDCE doesn't delete them... + for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) + I->setLinkage(GlobalValue::ExternalLinkage); + PassManager CleanupPasses; CleanupPasses.add(createFunctionResolvingPass()); CleanupPasses.add(createGlobalDCEPass()); |