================
@@ -885,16 +885,19 @@ bool Sema::DiagnoseUninstantiableTemplate(SourceLocation
PointOfInstantiation,
/// that the template parameter 'PrevDecl' is being shadowed by a new
/// declaration at location Loc. Returns true to indicate that this is
/// an error, and false otherwise.
-void Sema::DiagnoseTemplateParameterShadow(SourceLocation Loc, Decl *PrevDecl)
{
+void Sema::DiagnoseTemplateParameterShadow(SourceLocation Loc, Decl *PrevDecl,
+ bool IssueWarning) {
----------------
sdkrystian wrote:
I think the more generic `IssueWarning` is less ambiguous. We only issue the
warning for variable/function templates the shadow _their own_ template
parameters. For example:
```cpp
template<typename T>
struct A
{
template<typename U> void U(); // warning
template<typename U> void T(); // error
void T(); // error
};
```
`ShadowsFunctionOrVariableName` establishes the expectation that its value will
be `true` for all the above function declarations (its only `true` for the
first one).
https://github.com/llvm/llvm-project/pull/79683
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits