<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 8 March 2013 16:11, Johannes Pfau <span dir="ltr"><<a href="mailto:nospam@example.com" target="_blank">nospam@example.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, 8 Mar 2013 15:18:53 +0000<br>
schrieb Iain Buclaw <<a href="mailto:ibuclaw@ubuntu.com">ibuclaw@ubuntu.com</a>>:<br>
<div class="im"><br>
<br>
> Yet not all attributes that GCC offers actually make sense to have in<br>
> D. We certainly need to have a review of each one and discuss what is<br>
> most important to have.  Also defining our own unique attributes<br>
> along the way. :o)<br>
><br>
<br>
</div>To get the discussion started: I think we could adopt these LDC<br>
pragmas:<br>
<br>
 LDC_no_typeinfo<br>
 LDC_no_moduleinfo<br>
<br></blockquote><div><br></div><div>That could come under the jurisdiction of -ffree-standing  (something that could be the equivalent of dmd's -betterC).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Maybe nice to have:<br>
LDC_global_crt_ctor and LDC_global_crt_dtor<br>
(is this the same as<br>
__attribute__((constructor))/__attribute__((destructor))) ?<br>
<br></blockquote><div><br></div><div>Indeed.  This is different to this() and static this()  as these get called when the object gets loaded into C runtime, rather than delayed until D runtime initialises.<br></div><div>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Not needed in GDC?<br>
 LDC_allow_inline<br>
 (allow inlining a function continaining inline asm. not necessary for<br>
  gdc extended inline asm)<br>
</blockquote></div><br></div><div class="gmail_extra">Also not needed:<br></div><div class="gmail_extra">- aligned:  because D has align() for that.<br></div><div class="gmail_extra">- gnu_inline, artificial:  because D has no inline keyword, nor has need for one.<br>
</div><div class="gmail_extra">- error, warning:  There are better alternatives that can be implemented in D.<br></div><div class="gmail_extra">- deprecated:  There is a deprecated keyword for that.<br></div><div class="gmail_extra">
- no_split_stack:  Infact, supporting -fsplit-stack is a generally bad idea anyway and requires a new GC.<br></div><div class="gmail_extra">- nothrow:  D has nothrow keyword<br></div><div class="gmail_extra">- pure, const:  Although D has pure keyword that does not necessarily follow same as C semantics, I don't think the inclusion of these are beneficial at all.<br>
</div><div class="gmail_extra">- returns_twice:  Unless of course I'm missing the point of something here. :o)<br></div><div class="gmail_extra">- optimise, target:  I'm sure the guy who implemented these meant well, but I fail to see the point as to why you'd want such an attribute.<br>
</div><div class="gmail_extra">- used, unused:  ......<br clear="all"></div><div class="gmail_extra"><br><br></div><div class="gmail_extra">Regards<br></div><div class="gmail_extra">-- <br>Iain Buclaw<br><br>*(p < e ? p++ : p) = (c & 0x0f) + '0';
</div></div>