<div class="gmail_extra"><div class="gmail_quote">On Fri, Jul 6, 2012 at 10:29 AM, John McCall <span dir="ltr"><<a href="mailto:rjmccall@apple.com" target="_blank" class="cremed">rjmccall@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Jul 6, 2012, at 7:16 AM, Alexander Kornienko wrote:<br>
> The whole purpose of this e-mail is to gather ideas regarding our needs for C++11 attributes parsing. Right now, only select attributes are parsed in C++11 style, attribute arguments parsing is not implemented, there's no common check for matching attribute targets ("Subjects" field in Attr.td). BTW, AFAIK, the latter is not implemented for GNU-style attributes either.<br>

><br>
> Currently, I see the following questions:<br>
> 1. will we allow c++11 syntax for existing GNU attributes?<br>
<br>
</div>Probably not.  If we do, there's a potential for collision with attributes introduced by the committee.  It doesn't seem to have any benefits except giving users a prettier syntax for writing code that is totally unportable between compilers.<br>
</blockquote><div><br></div><div>I think there are a very few specific GNU attributes that we should support in either syntax: ones that are really Clang attributes but happen to be in GNU syntax currently:</div><div><br>
</div><div>- Thread safety attributes</div><div>- Some of the LLVM attributes such as readnone</div><div>- Attributes with very active users that would specifically benefit from the improved syntax of C++11 attributes: format string, non-null, and other argument-related attributes which are of particular use to static analysis tools built in and around clang.</div>
<div><br></div><div>That said, I don't think even these would ever be directly ported. We would naturally use the new name spacing utility to pave the way for increased portability. I would also assume this would be used as a good opportunity to re-think any syntactical problems we've hit over the years, and maybe talk to GCC folks to come up with an agreed-upon set of common names for those likely to be supported in both compilers (format string, non-null, etc).</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
> 2. what new attributes do we expect to appear in c++11 syntax?<br>
<br>
</div>Impossible to say;  it depends on the committee.<br>
<div class="im"><br>
> 3. will they require late parsing of parameters?<br>
<br>
</div>Unlikely, but possible.<br></blockquote><div><br></div><div>The thread safety attributes at the least would benefit from this, and there is definitely a desire to migrate those to C++11 syntax on our end.</div></div>
</div>