The instantiateFromTemplate method is only called from within Sema. Is the layering violation introduced by the forward declaration of class Sema within Attr.h?
-DeLesley On Fri, Jan 13, 2012 at 2:33 PM, Richard Smith <[email protected]> wrote: > 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). > > Thanks, > Richard > -- DeLesley Hutchins | Software Engineer | [email protected] | 505-206-0315 _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
