[PATCH] D149009: [Sema]Select correct lexical context during template instantiate
Congcong Cai via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 24 16:04:36 PDT 2023
HerrCai0907 added inline comments.
================
Comment at: clang/lib/Sema/SemaTemplateDeduction.cpp:3598
+ FD->isDefined(FDFriend, true) &&
+ FDFriend->getFriendObjectKind() != Decl::FriendObjectKind::FOK_None) {
+ // if Function defined by inline friend, use inline fried as DeclContext
----------------
erichkeane wrote:
> So in what case would the currently-instantiated definition NOT also be a friend? I would think this last condition should be able to be an assert instead.
Last condition cannot be an assert, define and declare in difference place is common case, what we need to identifier in here is inlined friend define.
================
Comment at: clang/lib/Sema/SemaTemplateDeduction.cpp:3601
+ FD = const_cast<FunctionDecl *>(FDFriend);
+ Owner = FD->getDescribedFunctionTemplate()->getLexicalDeclContext();
+ }
----------------
erichkeane wrote:
> I THINK this should just be:
> `Owner = FD->getLexicalDeclContext()` here.
The old `Owner` is `FunctionTemplate->getLexicalDeclContext()`. So I think we should use same level owner.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D149009/new/
https://reviews.llvm.org/D149009
More information about the cfe-commits
mailing list