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

Attachment: virtual.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to