Though I've done this deliberately in one or two places (where I didn't care about the base function, but had a derived function with the same naem & different args) - the right warning's probably to warn at the call site and tell people "this call site would've called a different function in the base class, if it were visible".
On Wed, Jul 30, 2014 at 1:42 PM, David Blaikie <[email protected]> wrote: > I made some improvements to -Woverloaded-virtual a while ago and > semi-deliberately chose the behavior you're observing (in the sense > that it seemed like this warning was for catching the case where you > tried to override a virtual function but accidentally ended up > overloading it). > > The situation you've described might be better suited to a separate > flag - and should warn even if there's no overriding going on. This > could fire on non-virtual functions too: > > struct base { > void func(char); > }; > > struct derived: base { > void func(int); > }; > > We currently don't warn here. > > On Wed, Jul 30, 2014 at 1:30 PM, Aaron Ballman <[email protected]> wrote: >> I believe the following patch addresses a slight deficiency in our >> -Woverloaded-virtual warning check. Specifically, it causes the >> following code to warn (which matches GCC's behavior): >> >> struct base { >> virtual void foo(int I) {} >> virtual void foo(char C) {} >> }; >> >> struct derived : public base { >> void foo(int I2) override {} >> }; >> >> It does this by continuing to check other methods instead of early >> returning out of processing them when an exact signature match is >> encountered. I believe this is an improvement because it catches >> problems like: >> >> derived d; >> d.foo('1'); >> >> Where derived::foo(int) is called when the user may expect >> base::foo(char) to be called. >> >> ~Aaron >> >> _______________________________________________ >> cfe-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >> _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
