Disable GCC's -Woverloaded-virtual in the configure+make build. Clang's is better.
Turns out Clang's -Woverloaded-virtual is enabled by -Wall in both CMake and Configure builds. We were only explicitly specifying it (thus enabling GCC's version of the warning) in the Configure build. The specific case of interest is: struct base { virtual void func(); virtual void func(int); }; struct derived: base { virtual void func(); // GCC warns here, because this causes // func(int) to be hidden }; I don't think that's worth getting fussed about (& Clang (indirectly me... since I improved this warning in Clang) agrees or we would've made the warning catch these cases. Technically this could still lead to bugs/confusion if base had func(int) and func(bool), derived overrode func(bool) and then a caller with a derived object tried to call func(42) - it would silently call func(bool). We should probably improve clang's warnings to catch this at the call site at some point. llvm-svn: 218059
Loading
Please register or sign in to comment