<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><a href="http://llvm.org/bugs/show_bug.cgi?id=16131">PR16131</a> describes an analyzer assertion on taking the address of an extern void variable:<div><br></div><div><pre class="bz_comment_text" id="comment_text_0" style="font-size: small; white-space: pre-wrap; width: 50em; background-color: rgb(255, 255, 255); ">extern void v;
static void f(void) {
        &v;
}
</pre></div><div>Clearly the analyzer shouldn't crash, but I'm surprised that this is legal at all. Yet I can't find anything in the standard actually forbidding it—you can certainly do the same thing with any incomplete struct type. Can somebody confirm that this is at least grammatically correct?</div><div><br></div><div>(I suppose like an incomplete object it provides a way to name an <i>address</i> without allowing access.)</div><div><br></div><div>Jordan</div></body></html>