rsmith added a comment. Looks good other than the warning, which I don't yet understand.
================ Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:4683-4686 + "Member '%0' marked with 'exclude_from_explicit_instantiation' attribute is " + "not defined but an explicit template instantiation declaration exists. " + "Reliance on this member being defined by an explicit template instantiation " + "will lead to link errors.">; ---------------- Diagnostics should start with a lowercase letter and not end with a period. That said, I'm not sure I see why this diagnostic is correct / useful. If the entity is never used, then there's no link error. And if it is ever used, then you should get an implicit instantiation like normal, and we already have a diagnostic for the case where an entity is implicitly instantiated and no definition is available. ================ Comment at: clang/lib/Sema/SemaTemplateInstantiate.cpp:2581-2582 + if (Function->hasAttr<ExcludeFromExplicitInstantiationAttr>()) { + if (TSK == TSK_ExplicitInstantiationDeclaration && + !Pattern->isDefined()) { + Diag(Function->getLocation(), ---------------- Nit: we prefer to left-align continuation lines (clang-format will do that for you). Repository: rC Clang https://reviews.llvm.org/D51789 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits