diff options
author | Alexander Kornienko <alexfh@google.com> | 2017-11-27 12:42:04 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2017-11-27 12:42:04 +0000 |
commit | e82bde3b124ed9d9a1d3954dfac2761f6c8e65a2 (patch) | |
tree | 7499250c71eae683be3abaf936f888728ff27e42 /clang-tidy/readability | |
parent | 563547d4fa2a12a3d89201f3448ac25eff9d19a7 (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.cpp | 13 |
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; } } |