aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 5890bbc..f2b87c6 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -9632,11 +9632,15 @@ Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC,
}
if (isFriend) {
+ // In MSVC mode for older versions of the standard, friend function
+ // declarations behave as declarations
+ bool PerformFriendInjection =
+ getLangOpts().MSVCCompat && !getLangOpts().CPlusPlus20;
if (FunctionTemplate) {
- FunctionTemplate->setObjectOfFriendDecl();
+ FunctionTemplate->setObjectOfFriendDecl(PerformFriendInjection);
FunctionTemplate->setAccess(AS_public);
}
- NewFD->setObjectOfFriendDecl();
+ NewFD->setObjectOfFriendDecl(PerformFriendInjection);
NewFD->setAccess(AS_public);
}