[cfe-commits] [PATCH] Instantiate dependent attributes in template code.

Richard Smith richard at metafoo.co.uk
Fri Jan 13 14:33:14 PST 2012

Hi Delesley,

Apologies for the huge delay in getting this patch reviewed!

On Tue, December 13, 2011 23:08, Delesley Hutchins wrote:
> This patch modifies Sema::InstantiateAttrs so that attributes in
> template code are properly instantiated; the previous behavior was to clone
> them.  The main motivation for the patch are thread safety attributes, which
> make extensive use of expressions.
> A new method named instantiateFromTemplate is now generated for all
> attributes.  The behavior of this method is identical to clone() for all
> arguments except ExprArgument and VariadicExprArgument; expression arguments
> are instantiated rather than cloned.

This patch introduces a layering violation: AST code is not permitted to use
Sema. In order to resolve this, I suggest you instead modify TableGen to
synthesize some Sema code which performs attribute instantiation (using a
switch over the attribute kind).


More information about the cfe-commits mailing list