[LLVMdev] -Woverloaded-virtual
Chris Lattner
sabre at nondot.org
Thu Jun 24 12:43:00 PDT 2004
On Thu, 24 Jun 2004, Reid Spencer wrote:
> I asked Chris about this months ago but there was little interest in
> changing it.
I thought we were talking about -Weffc++ at that time?
> Perhaps we need to file a bug to take care of the warnings it produces
> so that LLVm is overloaded virtual clean, then we can turn on checking
> for overloaded virtuals.
This sounds like a great way to do it.
-Chris
> On Thu, 2004-06-24 at 06:40, Vladimir Prus wrote:
> > I've just had some fun, because I wanted to override
> > FunctionPass::addAnalysisUsage, but forgot "const" after the method name --
> > so instead of overriding I've just created a new unrelated method.
> >
> > After spending some time on this, I've decided to add -Woverloaded-virtual
> > option to compiler to catch such cases. However, it also gives some warnings
> > on LLVM code:
> >
> > ../../../include/llvm/Pass.h:264: warning: `virtual bool
> > llvm::FunctionPass::run(llvm::Module&)' was hidden
> > ../../../include/llvm/Pass.h:326: warning: by `bool
> > llvm::BasicBlockPass::run(llvm::BasicBlock&)'
> > ../../../include/llvm/Pass.h:275: warning: `virtual void
> > llvm::FunctionPass::addToPassManager(llvm::PassManagerT<llvm::Module>*,
> > llvm::AnalysisUsage&)' was hidden
> > ../../../include/llvm/Pass.h:332: warning: by `virtual void
> > llvm::BasicBlockPass::addToPassManager(llvm::PassManagerT<llvm::BasicBlock>*,
> > llvm::AnalysisUsage&)'
> >
> > The problem is that "run" method is virtual in Path (with Module& as
> > argument), but another version (non-virtual), which takes BasicBlock& is
> > defined in BasicBlockPath.
> >
> > Do you think this warning is worth fixing? One possible approach is to rename
> > virtual run(Module&) to runOnModule, but that would require updating all
> > derived classes :-(
> >
> > - Volodya
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> > http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-Chris
--
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/
More information about the llvm-dev
mailing list