Index: clang-tools-extra/trunk/clang-tidy/readability/RedundantMemberInitCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/readability/RedundantMemberInitCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/readability/RedundantMemberInitCheck.cpp @@ -54,7 +54,7 @@ } else { diag(Init->getSourceLocation(), "initializer for base class %0 is redundant") - << Init->getTypeSourceInfo()->getType() + << Construct->getType() << FixItHint::CreateRemoval(Init->getSourceRange()); } } Index: clang-tools-extra/trunk/test/clang-tidy/readability-redundant-member-init.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/readability-redundant-member-init.cpp +++ clang-tools-extra/trunk/test/clang-tidy/readability-redundant-member-init.cpp @@ -87,6 +87,24 @@ // CHECK-FIXES: F7() {} }; +namespace Foo { +inline namespace Bar { +template +struct Template { + Template() = default; + int i = N; +}; +} +} + +enum { N_THINGS = 5 }; + +struct F8 : Foo::Template { + F8() : Template() {} + // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: initializer for base class 'Foo::Template' is redundant + // CHECK-FIXES: F8() {} +}; + // Initializer not written struct NF1 { NF1() {}