ModulePass and ImmutablePass. Force out of line virtual method.
authorDevang Patel <dpatel@apple.com>
Fri, 22 Dec 2006 22:49:00 +0000 (22:49 +0000)
committerDevang Patel <dpatel@apple.com>
Fri, 22 Dec 2006 22:49:00 +0000 (22:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32748 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Pass.h
lib/VMCore/Pass.cpp

index 9663826ccf615343b006d8b31899bb91202d9961..a5c1c61c4bf588f8a0dfff7a6f3d0a573fbb2e13 100644 (file)
@@ -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
 };
 
index 8c5a2f760ebbf2b9bd9e3087df51c279c39343cc..a3c3d7aa818c92946a4aae908eb98b6304fd95bc 100644 (file)
@@ -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
 
 //===----------------------------------------------------------------------===//