[cfe-dev] Getting meta-data into Clang's AST
Sean Hunt
rideau3 at gmail.com
Fri Jul 9 00:54:25 PDT 2010
On 07/08/2010 03:01 AM, Jan Bierbaum wrote:
> But to make use of the C++0x style attributes you have to use the
> -std=c++0x option, correct?
Currently, yes. Also note that the implementation is a little outdated;
there were changes to the way attributes are parsed in the most recent
draft and those are not reflected in the source.
> Is it possible to add custom attributes to Clang without changing it's
> code? Are there any hooks? I'm trying to build on top of the binary
> distribution of LLVM and Clang just using their libs. Up to now I found
> hooks in the preprocessor to add pragma and comment handlers but nothing
> for attributes.
No. Adding custom attribute hooks is a good idea, and I'll consider it
after I finish my current attribute rewrite.
> When I just add some custom attributes to the source they are parse
> without any error but then just discarded. All I need is to have them in
> the AST besides the built-in ones.
To do this much, you would need to currently add the attribute to
include/clang/Basic/Attr.td, include/clang/AST/Attr.h,
include/clang/Parse/AttributeList.h, lib/Parse/AttributeList.cpp, and
lib/Sema/SemaDeclAttr.cpp, I believe. If you want them to use the C++0x
syntax, you would additionally need to look at
lib/Parse/ParseDeclCXX.cpp, near the bottom.
My project is to simplify this process somewhat, but it's currently
somewhat stuck awaiting reply from the GCC devs about their attribute
syntax.
Sean
More information about the cfe-dev
mailing list