aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy/modernize
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@vmiklos.hu>2017-05-08 15:13:31 +0000
committerMiklos Vajna <vmiklos@vmiklos.hu>2017-05-08 15:13:31 +0000
commit0854f2dd8ff60d68cefcbb64165d7855d6f96543 (patch)
treeaa0965818cf75375c3ff739fb467bc2cdd535994 /clang-tools-extra/clang-tidy/modernize
parent7fdbb3feda32fa3af4202c01ff49a3a7f050b1a2 (diff)
downloadllvm-0854f2dd8ff60d68cefcbb64165d7855d6f96543.zip
llvm-0854f2dd8ff60d68cefcbb64165d7855d6f96543.tar.gz
llvm-0854f2dd8ff60d68cefcbb64165d7855d6f96543.tar.bz2
clang-tidy: add IgnoreMacros option to modernize-use-default-member-init
Summary: And also enable it by default to be consistent with e.g. modernize-use-using. This helps e.g. when running this check on cppunit client code where the macro is provided by the system, so there is no easy way to modify it. Reviewers: alexfh, malcolm.parsons Reviewed By: malcolm.parsons Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D32945 llvm-svn: 302429
Diffstat (limited to 'clang-tools-extra/clang-tidy/modernize')
-rw-r--r--clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp8
-rw-r--r--clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h1
-rw-r--r--clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp2
3 files changed, 9 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
index d0d4c65..7fa773c 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
@@ -139,11 +139,13 @@ static bool sameValue(const Expr *E1, const Expr *E2) {
UseDefaultMemberInitCheck::UseDefaultMemberInitCheck(StringRef Name,
ClangTidyContext *Context)
: ClangTidyCheck(Name, Context),
- UseAssignment(Options.get("UseAssignment", 0) != 0) {}
+ UseAssignment(Options.get("UseAssignment", 0) != 0),
+ IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", 1) != 0) {}
void UseDefaultMemberInitCheck::storeOptions(
ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "UseAssignment", UseAssignment);
+ Options.store(Opts, "IgnoreMacros", IgnoreMacros);
}
void UseDefaultMemberInitCheck::registerMatchers(MatchFinder *Finder) {
@@ -197,6 +199,10 @@ void UseDefaultMemberInitCheck::checkDefaultInit(
const MatchFinder::MatchResult &Result, const CXXCtorInitializer *Init) {
const FieldDecl *Field = Init->getMember();
+ SourceLocation StartLoc = Field->getLocStart();
+ if (StartLoc.isMacroID() && IgnoreMacros)
+ return;
+
SourceLocation FieldEnd =
Lexer::getLocForEndOfToken(Field->getSourceRange().getEnd(), 0,
*Result.SourceManager, getLangOpts());
diff --git a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h
index 6d3b19b..d8887a0 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h
+++ b/clang-tools-extra/clang-tidy/modernize/UseDefaultMemberInitCheck.h
@@ -36,6 +36,7 @@ private:
const CXXCtorInitializer *Init);
const bool UseAssignment;
+ const bool IgnoreMacros;
};
} // namespace modernize
diff --git a/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
index fc9dc76..cc6d77d 100644
--- a/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/UseUsingCheck.cpp
@@ -19,7 +19,7 @@ namespace modernize {
UseUsingCheck::UseUsingCheck(StringRef Name, ClangTidyContext *Context)
: ClangTidyCheck(Name, Context),
- IgnoreMacros(Options.get("IgnoreMacros", true)) {}
+ IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", true)) {}
void UseUsingCheck::registerMatchers(MatchFinder *Finder) {
if (!getLangOpts().CPlusPlus11)