[clang] Allow weak/selectany external definitions in header units. (PR #162713)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 15 17:10:45 PDT 2025
================
@@ -13822,7 +13822,10 @@ void Sema::AddInitializerToDecl(Decl *RealDecl, Expr *Init, bool DirectInit) {
!VDecl->isInvalidDecl() && VDecl->isThisDeclarationADefinition() &&
VDecl->getFormalLinkage() == Linkage::External && !VDecl->isInline() &&
!VDecl->isTemplated() && !isa<VarTemplateSpecializationDecl>(VDecl) &&
- !VDecl->getInstantiatedFromStaticDataMember()) {
+ !VDecl->getInstantiatedFromStaticDataMember() &&
+ // The intent of the above section seems to be to prevent ODR issues.
+ // Weak symbols do the same but are not part of the c++ spec.
----------------
akrieger wrote:
"the above section" was meant to refer to the section of the c++ spec, I see how that's ambiguous here.
https://github.com/llvm/llvm-project/pull/162713
More information about the cfe-commits
mailing list