diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-09-18 16:34:25 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-09-18 16:34:25 +0000 |
commit | 335a2eb2481ab7a69157c3e90f6f820512df70aa (patch) | |
tree | 13b1ea764de2f36daee64a2bd384a6459c7bb183 /Makefile.rules | |
parent | e08e52528b736d73e32ec56eb244e2062ac5f124 (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218059 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Makefile.rules')
-rw-r--r-- | Makefile.rules | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/Makefile.rules b/Makefile.rules index e802f8cab18..4662e4986d4 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -449,7 +449,6 @@ ifeq ($(HOST_OS),MingW) endif endif -CXX.Flags += -Woverloaded-virtual CPP.BaseFlags += $(CPP.Defines) AR.Flags := cru |