<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 22 August 2015 at 11:33, Johannes Pfau via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am Fri, 21 Aug 2015 15:16:01 +0200<br>
schrieb Iain Buclaw via Digitalmars-d <<a href="mailto:digitalmars-d@puremagic.com">digitalmars-d@puremagic.com</a>>:<br>
<span class=""><br>
><br>
> Other than that, the semantics of pragma(inline, true) should<br>
> guarantee that the function is never *written* to object file.<br>
><br>
<br>
</span>This really should be documented then. If we build a shared library<br>
with pragma(inline) functions not emitting the function prevents taking<br>
the address of that function in all client code. As this is a breaking<br>
change to 'normal' inline semantics it needs to be documented.<br>
<br>
<a href="https://github.com/D-Programming-Language/dlang.org/pull/1073" rel="noreferrer" target="_blank">https://github.com/D-Programming-Language/dlang.org/pull/1073</a><br>
</blockquote></div><br></div><div class="gmail_extra">I wouldn't go as far as preventing these functions from having their address taken.  In that instance, of *course* it needs to be written to object file.  But it should be put in COMDAT as each external module that takes its address will have a copy of it.<br><br></div><div class="gmail_extra">Regards<br></div><div class="gmail_extra">Iain.<br></div><div class="gmail_extra"><br></div></div>