<div dir="ltr">On Thu, Apr 4, 2013 at 1:50 PM, Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">>    // C99 6.2.2p4: Check if we have a static decl followed by a non-static.<br>
>    if (New->getStorageClass() == SC_Static &&<br>
> -      (Old->getStorageClass() == SC_None || Old->hasExternalStorage())) {<br>
> +      !New->isStaticDataMember() &&<br>
> +      isExternalLinkage(Old->getLinkage())) {<br>
><br>
> This looks backwards -- is the comment here wrong? The 'isStaticDataMember'<br>
> check looks like it might be unnecessary, since a redeclaration of a static<br>
> data member can't be marked 'static'.<br>
<br>
</div>Good catch. I have updated the comment. The reference also looked<br>
wrong, at least in the C standard draft that I have, so I have changed<br>
it to point to the c++ one.<br>
<br>
The isStaticDataMember is there to avoid producing duplicated errors<br>
when a redeclaration has the static storage class.</blockquote><div><br></div><div style>OK, LGTM. </div></div></div></div>