aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Pass.h6
-rw-r--r--lib/VMCore/Pass.cpp6
2 files changed, 12 insertions, 0 deletions
diff --git a/include/llvm/Pass.h b/include/llvm/Pass.h
index 9663826..a5c1c61 100644
--- a/include/llvm/Pass.h
+++ b/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/lib/VMCore/Pass.cpp b/lib/VMCore/Pass.cpp
index 8c5a2f7..a3c3d7a 100644
--- a/lib/VMCore/Pass.cpp
+++ b/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
//===----------------------------------------------------------------------===//