<div><div class="gmail_extra"><div class="gmail_quote">On 7 Sep 2016 6:23 pm, "Peter Collingbourne" <<a href="mailto:peter@pcc.me.uk">peter@pcc.me.uk</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">pcc marked 4 inline comments as done.<br>
<div class="quoted-text"><br>
================<br>
Comment at: lib/CodeGen/CGVTables.cpp:588<br>
@@ +587,3 @@<br>
+        if (auto *F = dyn_cast<llvm::Function>(<wbr>Cache))<br>
+          F->setUnnamedAddr(llvm::<wbr>GlobalValue::UnnamedAddr::<wbr>Global);<br>
+        Cache = llvm::ConstantExpr::<wbr>getBitCast(Cache, CGM.Int8PtrTy);<br>
----------------<br>
</div><div class="quoted-text">rsmith wrote:<br>
> Do you have any idea why we're doing this? It looks wrong to me. These ABI entry points are exposed and could certainly have their addresses taken and used in this translation unit.<br>
</div>I introduced this in D18071. Although a translation unit can take the address of one of these functions, that would involve declaring a function with a reserved name, so I believe we'd be allowed to impose restrictions such as `unnamed_addr` on the address.</blockquote></div></div></div><div><br></div><div>These are declared by <cxxabi.h>, and thus presumably intended to be useable by programs, so I'm not convinced that reasoning applies. Do we gain anything from this?</div><div><br></div><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="elided-text">
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D22642" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D22642</a><br>
<br>
<br>
<br>
</div></blockquote></div><br></div></div>