aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorChuanqi Xu <yedeng.yd@linux.alibaba.com>2025-02-21 10:34:14 +0800
committerChuanqi Xu <yedeng.yd@linux.alibaba.com>2025-02-21 10:48:30 +0800
commit24c06a19be7bcf28b37e5eabbe65df95a2c0265a (patch)
treed604c3677c13d4fdda10e7ca8271f32a0d49a7ea /clang/lib/Sema/SemaDecl.cpp
parent6e5f26bba87be02ea4c1220898031c441c2562fc (diff)
downloadllvm-24c06a19be7bcf28b37e5eabbe65df95a2c0265a.zip
llvm-24c06a19be7bcf28b37e5eabbe65df95a2c0265a.tar.gz
llvm-24c06a19be7bcf28b37e5eabbe65df95a2c0265a.tar.bz2
[C++20] [Modules] handling selectAny attribute for vardecl
Close https://github.com/llvm/llvm-project/issues/127963 The root cause of the problem seems to be that we didn't realize it simply.
Diffstat (limited to 'clang/lib/Sema/SemaDecl.cpp')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index d95763b..32cc9d33 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -4803,7 +4803,8 @@ bool Sema::checkVarDeclRedefinition(VarDecl *Old, VarDecl *New) {
(New->getFormalLinkage() == Linkage::Internal || New->isInline() ||
isa<VarTemplateSpecializationDecl>(New) ||
New->getDescribedVarTemplate() || New->getNumTemplateParameterLists() ||
- New->getDeclContext()->isDependentContext())) {
+ New->getDeclContext()->isDependentContext() ||
+ New->hasAttr<SelectAnyAttr>())) {
// The previous definition is hidden, and multiple definitions are
// permitted (in separate TUs). Demote this to a declaration.
New->demoteThisDefinitionToDeclaration();