diff options
author | Miklos Vajna <vmiklos@vmiklos.hu> | 2018-01-05 23:22:10 +0000 |
---|---|---|
committer | Miklos Vajna <vmiklos@vmiklos.hu> | 2018-01-05 23:22:10 +0000 |
commit | 5be22f8fb85b0ecaa8987de2621d69173a97604c (patch) | |
tree | 4362047f28b0cae719ac0e6a627a30489db50edc /clang-tidy/readability | |
parent | a84a4b5274a29e778da2b47238a1b146fe1ca4b5 (diff) |
clang-tidy: add IgnoreMacros option to readability-inconsistent-declaration-parameter-name
And also enable it by default to be consistent with e.g. modernize-use-using.
This helps e.g. when running this check on client code where the macro is
provided by the system, so there is no easy way to modify it.
Reviewers: alexfh, piotrdz, hokein, ilya-biryukov
Reviewed By: alexfh
Differential Revision: https://reviews.llvm.org/D41716
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@321913 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'clang-tidy/readability')
-rw-r--r-- | clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp | 11 | ||||
-rw-r--r-- | clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h | 5 |
2 files changed, 15 insertions, 1 deletions
diff --git a/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp b/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp index d20416e8..254ef960 100644 --- a/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp +++ b/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp @@ -281,6 +281,11 @@ void formatDiagnostics( } // anonymous namespace +void InconsistentDeclarationParameterNameCheck::storeOptions( + ClangTidyOptions::OptionMap &Opts) { + Options.store(Opts, "IgnoreMacros", IgnoreMacros); +} + void InconsistentDeclarationParameterNameCheck::registerMatchers( MatchFinder *Finder) { Finder->addMatcher(functionDecl(unless(isImplicit()), hasOtherDeclarations()) @@ -309,6 +314,12 @@ void InconsistentDeclarationParameterNameCheck::check( return; } + SourceLocation StartLoc = OriginalDeclaration->getLocStart(); + if (StartLoc.isMacroID() && IgnoreMacros) { + markRedeclarationsAsVisited(OriginalDeclaration); + return; + } + if (OriginalDeclaration->getTemplatedKind() == FunctionDecl::TK_FunctionTemplateSpecialization) { formatDiagnostics(this, ParameterSourceDeclaration, OriginalDeclaration, diff --git a/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h b/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h index 54860312..a6e0dfc4 100644 --- a/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h +++ b/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h @@ -27,8 +27,10 @@ class InconsistentDeclarationParameterNameCheck : public ClangTidyCheck { public: InconsistentDeclarationParameterNameCheck(StringRef Name, ClangTidyContext *Context) - : ClangTidyCheck(Name, Context) {} + : ClangTidyCheck(Name, Context), + IgnoreMacros(Options.getLocalOrGlobal("IgnoreMacros", 1) != 0) {} + void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; @@ -36,6 +38,7 @@ private: void markRedeclarationsAsVisited(const FunctionDecl *FunctionDeclaration); llvm::DenseSet<const FunctionDecl *> VisitedDeclarations; + const bool IgnoreMacros; }; } // namespace readability |