[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