[cfe-dev] C++11 attributes parsing

Chandler Carruth chandlerc at google.com
Mon Jul 9 05:14:21 PDT 2012


On Fri, Jul 6, 2012 at 10:29 AM, John McCall <rjmccall at apple.com> wrote:

> On Jul 6, 2012, at 7:16 AM, Alexander Kornienko wrote:
> > 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.
> >
> > Currently, I see the following questions:
> > 1. will we allow c++11 syntax for existing GNU attributes?
>
> 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.
>

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:

- Thread safety attributes
- Some of the LLVM attributes such as readnone
- 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.

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).


>
> > 2. what new attributes do we expect to appear in c++11 syntax?
>
> Impossible to say;  it depends on the committee.
>
> > 3. will they require late parsing of parameters?
>
> Unlikely, but possible.
>

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120709/4a0e8242/attachment.html>


More information about the cfe-dev mailing list