aboutsummaryrefslogtreecommitdiff
path: root/clang-tidy/readability
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2017-11-27 12:42:04 +0000
committerAlexander Kornienko <alexfh@google.com>2017-11-27 12:42:04 +0000
commite82bde3b124ed9d9a1d3954dfac2761f6c8e65a2 (patch)
tree7499250c71eae683be3abaf936f888728ff27e42 /clang-tidy/readability
parent563547d4fa2a12a3d89201f3448ac25eff9d19a7 (diff)
[clang-tidy] readability-non-const-parameter fixes should update all declarations
Fixes http://llvm.org/PR34410. git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@319021 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'clang-tidy/readability')
-rw-r--r--clang-tidy/readability/NonConstParameterCheck.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/clang-tidy/readability/NonConstParameterCheck.cpp b/clang-tidy/readability/NonConstParameterCheck.cpp
index 5ef9644d..bc6507c8 100644
--- a/clang-tidy/readability/NonConstParameterCheck.cpp
+++ b/clang-tidy/readability/NonConstParameterCheck.cpp
@@ -138,9 +138,18 @@ void NonConstParameterCheck::diagnoseNonConstParameters() {
if (!ParamInfo.CanBeConst)
continue;
+ SmallVector<FixItHint, 8> Fixes;
+ auto *Function =
+ dyn_cast_or_null<const FunctionDecl>(Par->getParentFunctionOrMethod());
+ if (!Function)
+ continue;
+ unsigned Index = Par->getFunctionScopeIndex();
+ for (FunctionDecl *FnDecl : Function->redecls())
+ Fixes.push_back(FixItHint::CreateInsertion(
+ FnDecl->getParamDecl(Index)->getLocStart(), "const "));
+
diag(Par->getLocation(), "pointer parameter '%0' can be pointer to const")
- << Par->getName()
- << FixItHint::CreateInsertion(Par->getLocStart(), "const ");
+ << Par->getName() << Fixes;
}
}