<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Apr 5, 2016 at 11:28 AM, Taewook Oh via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif">
<div>Hello, </div>
<div><br>
</div>
<div>Unlike gcc, clang does not provide builtin functions for functions in ctype.h, such as tolower. To generated better optimized code, I'm planning to add these functions as builtins with attributes. Regarding this, I have a few questions:</div>
<div><br>
</div>
<ol>
<li>In "Attributes in Clang" page (<a href="http://clang.llvm.org/docs/AttributeReference.html" target="_blank">http://clang.llvm.org/docs/AttributeReference.html</a>), "nothrow" and "const" are not in the list while they are still used in Builtins.def. Are these attributes
 deprecated?</li></ol></div></blockquote><div>No, they're just not documented yet. (We'd appreciate patches to include/clang/AttrDocs.td and include/clang/Attr.td if you're feeling enthusiastic, but note that this needs to be original documentation -- it wouldn't be acceptable to copy documentation from GCC due to license differences.) <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif"><ol><li>(Assuming they are not deprecated) Is there a place that I can find definitions for attributes used in builtins.def? In particular, I wonder if "const" attributes of clang has same meaning with gcc's "const" attribute, as it seems that clang does not support
 "pure" attribute.</li></ol></div></blockquote><div>Yes, the attributes listed in clang's Builtins.def are the __attribute__((X)) form, which generally mean the same thing to Clang as they do to GCC (with rare exceptions).<br></div></div></div></div>