diff options
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index be1ee358e2a..583f7c59b41 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -6532,6 +6532,17 @@ Decl *Sema::ActOnFriendFunctionDecl(Scope *S, Declarator &D, bool IsDefinition,    if (ND->isInvalidDecl())      FrD->setInvalidDecl(); +  else { +    FunctionDecl *FD; +    if (FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(ND)) +      FD = FTD->getTemplatedDecl(); +    else +      FD = cast<FunctionDecl>(ND); + +    // Mark templated-scope function declarations as unsupported. +    if (FD->getNumTemplateParameterLists()) +      FrD->setUnsupportedFriend(true); +  }    return ND;  }  | 

