diff options
Diffstat (limited to 'lib/CodeGen/MachineFunction.cpp')
-rw-r--r-- | lib/CodeGen/MachineFunction.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/CodeGen/MachineFunction.cpp b/lib/CodeGen/MachineFunction.cpp index bd7105fd28..18a040e554 100644 --- a/lib/CodeGen/MachineFunction.cpp +++ b/lib/CodeGen/MachineFunction.cpp @@ -38,8 +38,14 @@ using namespace llvm; static AnnotationID MF_AID( AnnotationManager::getID("CodeGen::MachineCodeForFunction")); -// Out of line virtual function to home classes. -void MachineFunctionPass::virtfn() {} +bool MachineFunctionPass::runOnFunction(Function &F) { + // Do not codegen any 'available_externally' functions at all, they have + // definitions outside the translation unit. + if (F.hasAvailableExternallyLinkage()) + return false; + + return runOnMachineFunction(MachineFunction::get(&F)); +} namespace { struct VISIBILITY_HIDDEN Printer : public MachineFunctionPass { |