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
virtual.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
