[clang] [Clang] prevent setting default lexical access specifier for missing primary declarations (PR #112424)
Oleksandr T. via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 18 05:12:12 PDT 2024
================
@@ -39,7 +39,8 @@ bool Sema::SetMemberAccessSpecifier(NamedDecl *MemberDecl,
AccessSpecifier LexicalAS) {
if (!PrevMemberDecl) {
// Use the lexical access specifier.
- MemberDecl->setAccess(LexicalAS);
----------------
a-tarasyuk wrote:
> The current diagnostic does not fit this case though and maybe it has to be tweaked some more.
@shafik Thanks for the feedback! I initially considered marking the new declaration invalid based on `TUK_Declaration`, but I wasn’t entirely sure because of its relation to the new declaration
https://github.com/llvm/llvm-project/blob/7be1dc0f32f43331c049725e0e2b902e74115779/clang/lib/Sema/SemaDecl.cpp#L17953-L17954
I’ve made changes to handle this case based on TUK_Declaration. If we need to add a diagnostic message (_something like a general message saying `"enum" cannot appear here`_), just let me know and I’ll add it...
https://github.com/llvm/llvm-project/pull/112424
More information about the cfe-commits
mailing list