summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMalcolm Parsons <malcolm.parsons@gmail.com>2017-01-04 17:33:55 +0000
committerMalcolm Parsons <malcolm.parsons@gmail.com>2017-01-04 17:33:55 +0000
commitb744ce87fc48cb60d6c79f00bf8c2959579a2f2f (patch)
treea09813908a283e2388392b44503fe051faaa1039
parent6cfb5caf0550a656bd06ea9faf415ad4b2aa9790 (diff)
downloadbcm5719-llvm-b744ce87fc48cb60d6c79f00bf8c2959579a2f2f.tar.gz
bcm5719-llvm-b744ce87fc48cb60d6c79f00bf8c2959579a2f2f.zip
[clang-tidy] Ignore default arguments in modernize-default-member-init
Summary: Default member initializers cannot refer to constructor parameters, but modernize-default-member-init was trying to when the default constructor had default arguments. Change the check to ignore default arguments to the default constructor. Fixes PR31524. Reviewers: alexfh, aaron.ballman Subscribers: cfe-commits, JDevlieghere, Eugene.Zelenko Differential Revision: https://reviews.llvm.org/D28287 llvm-svn: 290972
-rw-r--r--clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp2
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp6
2 files changed, 7 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
index c8e92043381..d0d4c657e57 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
@@ -158,7 +158,7 @@ void UseDefaultMemberInitCheck::registerMatchers(MatchFinder *Finder) {
unaryOperator(anyOf(hasOperatorName("+"), hasOperatorName("-")),
hasUnaryOperand(floatLiteral())),
cxxBoolLiteral(), cxxNullPtrLiteralExpr(), implicitValueInitExpr(),
- declRefExpr());
+ declRefExpr(to(enumConstantDecl())));
Finder->addMatcher(
cxxConstructorDecl(
diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp
index 5844cdff990..febcce514cb 100644
--- a/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp
+++ b/clang-tools-extra/test/clang-tidy/modernize-use-default-member-init.cpp
@@ -221,6 +221,12 @@ struct NegativeNotDefaultInt
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]
OpenPOWER on IntegriCloud