diff options
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 6 | 
1 files changed, 5 insertions, 1 deletions
| diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 19885ba9cf6..2e69108617e 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -3950,7 +3950,11 @@ Sema::ActOnParamDeclarator(Scope *S, Declarator &D) {    // Check for redeclaration of parameters, e.g. int foo(int x, int x);    IdentifierInfo *II = D.getIdentifier();    if (II) { -    if (NamedDecl *PrevDecl = LookupSingleName(S, II, LookupOrdinaryName)) { +    LookupResult R(*this, II, D.getIdentifierLoc(), LookupOrdinaryName, +                   ForRedeclaration); +    LookupName(R, S); +    if (R.isSingleResult()) { +      NamedDecl *PrevDecl = R.getFoundDecl();        if (PrevDecl->isTemplateParameter()) {          // Maybe we will complain about the shadowed template parameter.          DiagnoseTemplateParameterShadow(D.getIdentifierLoc(), PrevDecl); | 

