================
@@ -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:

https://eel.is/c++draft/module.import#6
I could import the exact phrasing `A header unit shall not contain a definition 
of a non-inline function or variable whose name has external linkage.`  I 
guess? I will iterate on it and see if I find something I like.

https://github.com/llvm/llvm-project/pull/162713
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to