Index: clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp @@ -158,7 +158,7 @@ unaryOperator(anyOf(hasOperatorName("+"), hasOperatorName("-")), hasUnaryOperand(floatLiteral())), cxxBoolLiteral(), cxxNullPtrLiteralExpr(), implicitValueInitExpr(), - declRefExpr()); + declRefExpr(to(enumConstantDecl()))); Finder->addMatcher( cxxConstructorDecl( Index: clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init.cpp +++ clang-tools-extra/trunk/test/clang-tidy/modernize-use-default-member-init.cpp @@ -221,6 +221,12 @@ int i; }; +struct NegativeDefaultArg +{ + NegativeDefaultArg(int i = 4) : i(i) {} + int i; +}; + struct ExistingChar { ExistingChar(short) : e1(), e2(), e3(), e4() {} // CHECK-MESSAGES: :[[@LINE-1]]:25: warning: member initializer for 'e1' is redundant [modernize-use-default-member-init]