[cfe-commits] [Patch] PR14922 - Improve Attr::printPretty

Richard Smith richard at metafoo.co.uk
Fri Jan 11 17:14:53 PST 2013


Hi,

On Fri, Jan 11, 2013 at 3:53 PM, Michael Han <fragmentshaders at gmail.com>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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130111/1ae00e31/attachment.html>


More information about the cfe-commits mailing list