diff options
author | Miklos Vajna <vmiklos@vmiklos.hu> | 2017-05-08 15:13:31 +0000 |
---|---|---|
committer | Miklos Vajna <vmiklos@vmiklos.hu> | 2017-05-08 15:13:31 +0000 |
commit | 0854f2dd8ff60d68cefcbb64165d7855d6f96543 (patch) | |
tree | aa0965818cf75375c3ff739fb467bc2cdd535994 /clang-tools-extra/clang-tidy/modernize | |
parent | 7fdbb3feda32fa3af4202c01ff49a3a7f050b1a2 (diff) | |
download | llvm-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')
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) |