https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66472
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- GCC even warns for: template<typename T> struct Foo : T { typedef T Base; Foo(int size) : Base(size) {} using Base::size; }; While clang does not even warn for this case: struct Foo { Foo(int size) {} int size; }; clang does not warn for constructors but do for normal methods: struct Foo { void g(int size) {} int size; }; I don't know if it is a good idea to warn for constructors after all ....