mirror of
https://github.com/intel/llvm.git
synced 2026-01-17 06:40:01 +08:00
[clang-tidy] Fix false-positive in inconsistent-declaration-parameter-name (#170593)
Closes #169195
This commit is contained in:
@@ -107,6 +107,10 @@ findDifferingParamsInDeclaration(const FunctionDecl *ParameterSourceDeclaration,
|
||||
|
||||
while (SourceParamIt != ParameterSourceDeclaration->param_end() &&
|
||||
OtherParamIt != OtherDeclaration->param_end()) {
|
||||
if ((*SourceParamIt)->isParameterPack() !=
|
||||
(*OtherParamIt)->isParameterPack())
|
||||
break;
|
||||
|
||||
auto SourceParamName = (*SourceParamIt)->getName();
|
||||
auto OtherParamName = (*OtherParamIt)->getName();
|
||||
|
||||
|
||||
@@ -558,6 +558,11 @@ Changes in existing checks
|
||||
adding parentheses when the inner expression are implicitly converted
|
||||
multiple times.
|
||||
|
||||
- Improved :doc:`readability-inconsistent-declaration-parameter-name
|
||||
<clang-tidy/checks/readability/inconsistent-declaration-parameter-name>` check
|
||||
by not enforcing parameter name consistency between a variadic parameter pack
|
||||
in the primary template and specific parameters in its specializations.
|
||||
|
||||
- Improved :doc:`readability-qualified-auto
|
||||
<clang-tidy/checks/readability/qualified-auto>` check by adding the option
|
||||
`IgnoreAliasing`, that allows not looking at underlying types of type aliases.
|
||||
|
||||
@@ -191,3 +191,26 @@ struct S {
|
||||
void S::f(int y)
|
||||
{
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
|
||||
template<typename... Args>
|
||||
void variadicFunctionNoWarning(Args... args);
|
||||
|
||||
template<>
|
||||
void variadicFunctionNoWarning(int a) {}
|
||||
|
||||
template<>
|
||||
void variadicFunctionNoWarning(int a, int b) {}
|
||||
|
||||
template<typename... Args>
|
||||
void variadicFunction2WithWarning(int fixed, Args... args);
|
||||
|
||||
template<>
|
||||
void variadicFunction2WithWarning(int fixed, int a) {}
|
||||
|
||||
template<>
|
||||
// CHECK-MESSAGES: :[[@LINE+3]]:6: warning: function template specialization 'variadicFunction2WithWarning<float>' has a primary template
|
||||
// CHECK-MESSAGES: :[[@LINE-7]]:6: note: the primary template declaration seen here
|
||||
// CHECK-MESSAGES: :[[@LINE+1]]:6: note: differing parameters are named here: ('wrong'), in primary template declaration: ('fixed')
|
||||
void variadicFunction2WithWarning(int wrong, float a) {}
|
||||
|
||||
Reference in New Issue
Block a user