diff options
| -rw-r--r-- | llvm/include/llvm/Pass.h | 6 | ||||
| -rw-r--r-- | llvm/lib/VMCore/Pass.cpp | 6 | 
2 files changed, 12 insertions, 0 deletions
diff --git a/llvm/include/llvm/Pass.h b/llvm/include/llvm/Pass.h index 9663826ccf6..a5c1c61c4bf 100644 --- a/llvm/include/llvm/Pass.h +++ b/llvm/include/llvm/Pass.h @@ -205,6 +205,9 @@ public:  #ifdef USE_OLD_PASSMANAGER    virtual void addToPassManager(ModulePassManager *PM, AnalysisUsage &AU); +#else +  // Force out-of-line virtual method. +  virtual ~ModulePass();  #endif  }; @@ -233,6 +236,9 @@ private:    template<typename Trait> friend class PassManagerT;    friend class ModulePassManager;    virtual void addToPassManager(ModulePassManager *PM, AnalysisUsage &AU); +#else +  // Force out-of-line virtual method. +  virtual ~ImmutablePass();  #endif  }; diff --git a/llvm/lib/VMCore/Pass.cpp b/llvm/lib/VMCore/Pass.cpp index 8c5a2f760eb..a3c3d7aa818 100644 --- a/llvm/lib/VMCore/Pass.cpp +++ b/llvm/lib/VMCore/Pass.cpp @@ -171,6 +171,9 @@ void PMDebug::PrintAnalysisSetInfo(unsigned Depth, const char *Msg,  void ModulePass::addToPassManager(ModulePassManager *PM, AnalysisUsage &AU) {    PM->addPass(this, AU);  } +#else +// Force out-of-line virtual method. +ModulePass::~ModulePass() { }  #endif  bool Pass::mustPreserveAnalysisID(const PassInfo *AnalysisID) const { @@ -215,6 +218,9 @@ void ImmutablePass::addToPassManager(ModulePassManager *PM,                                       AnalysisUsage &AU) {    PM->addPass(this, AU);  } +#else +// Force out-of-line virtual method. +ImmutablePass::~ImmutablePass() { }  #endif  //===----------------------------------------------------------------------===//  | 

