Hi,

On Fri, Jan 11, 2013 at 3:53 PM, Michael Han <[email protected]>wrote:

> Hi,
>
> Attached patch is to fix PR14922. Currently when print an attribute the
> GNU syntax will always be used, even if the attribute has no GNU syntax.The
> fix is to pass the syntax flag when constructing the Attr node and take
> that into consideration when printing the attribute. The name of actual
> attribute gets printed is read from table gen definition file so there is
> still some limitations, for example, when an attribute has multiple
> spellings, the first spelling is used; and the namespace of the attribute
> (in case it's a C++11 attribute) is not printed. I test the patch locally
> in my project which has access to Clang AST but I am not sure how to write
> a stand alone test to test the attribute pretty print.  After this patch
> gets in I'll send another patch which updates the SemaDeclAttr to pass the
> actual syntax flag from AttributeList to Attr.


I don't think this is the best approach: it still always uses the first
spelling, so it still won't produce the right string for
__attribute__((aligned(...))) versus __declspec(alignment(...)) versus
[[gnu::aligned(...)]] versus alignas(...).

Since we already have a list of possible spellings for an attribute in the
attribute definition (which incorporates the syntax used), how about just
storing an index into that list on the Attr?
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to