aboutsummaryrefslogtreecommitdiff
path: root/clang-tidy/readability
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@vmiklos.hu>2018-01-05 23:22:10 +0000
committerMiklos Vajna <vmiklos@vmiklos.hu>2018-01-05 23:22:10 +0000
commit5be22f8fb85b0ecaa8987de2621d69173a97604c (patch)
tree4362047f28b0cae719ac0e6a627a30489db50edc /clang-tidy/readability
parenta84a4b5274a29e778da2b47238a1b146fe1ca4b5 (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.cpp11
-rw-r--r--clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h5
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