From: Reid Spencer Date: Tue, 7 Dec 2004 08:11:11 +0000 (+0000) Subject: For PR387:\ X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=ce20771ec2fd95cf3a7f9d0ad95717c2e83b5324;p=oota-llvm.git For PR387:\ Add runPass methods to remove -Woverloaded-virtual warnings are not \ present and circumvent possible inheritance bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18600 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Pass.h b/include/llvm/Pass.h index 0855986fbb6..e6083a3ca88 100644 --- a/include/llvm/Pass.h +++ b/include/llvm/Pass.h @@ -87,7 +87,8 @@ public: /// runPass - Run this pass, returning true if a modification was made to the /// module argument. This should be implemented by all concrete subclasses. /// - virtual bool runPass(Module &M) = 0; + virtual bool runPass(Module &M) { return false; } + virtual bool runPass(BasicBlock&) { return false; } /// print - Print out the internal state of the pass. This is called by /// Analyze to print out the contents of an analysis. Otherwise it is not @@ -216,7 +217,8 @@ public: /// being operated on. virtual bool runOnModule(Module &M) = 0; - bool runPass(Module &M) { return runOnModule(M); } + virtual bool runPass(Module &M) { return runOnModule(M); } + virtual bool runPass(BasicBlock&) { return false; } virtual void addToPassManager(PassManagerT *PM, AnalysisUsage &AU); }; @@ -338,7 +340,8 @@ struct BasicBlockPass : public FunctionPass { /// To run directly on the basic block, we initialize, runOnBasicBlock, then /// finalize. /// - bool runPass(BasicBlock &BB); + virtual bool runPass(Module &M) { return false; } + virtual bool runPass(BasicBlock &BB); private: friend class PassManagerT;