<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Feb 14, 2017 at 4:21 PM Mehdi AMINI via Phabricator via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">mehdi_amini added a comment.<br class="gmail_msg">
<br class="gmail_msg">
In <a href="https://reviews.llvm.org/D13330#582607" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D13330#582607</a>, @rsmith wrote:<br class="gmail_msg">
<br class="gmail_msg">
> I think this attribute is poorly named. Explicit instantiation definitions are *already* required to be globally unique; see [temp.spec]/5.1:<br class="gmail_msg">
><br class="gmail_msg">
> "For a given template and a given set of template-arguments, an explicit instantiation definition shall appear at most once in a program"<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
So what prevents from emitting these as "strong" symbols without any attribute? We should have the guarantee that we have only one such copy in the program.<br class="gmail_msg"></blockquote><div><br></div><div>If I recall correctly - the requirement is that if there's an explicit instantiation declaration there must be an explicit instantiation definition, but it's not required that all sites required an instantiation should see/have an explicit instantiation declaration. So you might have some implicit instantiations scattered around, then one explicit instantiation. If the explicit instantiation were strong, you'd get duplicate symbol problems in your link.<br><br>(that's my naive/vague understanding anyway)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br class="gmail_msg">
<br class="gmail_msg">
Repository:<br class="gmail_msg">
  rL LLVM<br class="gmail_msg">
<br class="gmail_msg">
<a href="https://reviews.llvm.org/D13330" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D13330</a><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
cfe-commits mailing list<br class="gmail_msg">
<a href="mailto:cfe-commits@lists.llvm.org" class="gmail_msg" target="_blank">cfe-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br class="gmail_msg">
</blockquote></div></div>