Based on feedback from Richard, here is another pass at modifying tablegen for Subjects support. The delta here is that templates have been removed and replaced by a method pair (one for Decl and one for Stmt). The usage is still the same as before: you can call appertainsTo and pass in something you want to know whether the attribute appertains to it or not, and it will return a Boolean.
~Aaron On Thu, Jun 20, 2013 at 5:34 PM, Aaron Ballman <[email protected]> wrote: > This patch adds support for the Subjects part of the Attr tablegen > file. Specifically, it modifies tablegen to pay attention to > Subjects, and emit a templated member function for attribute > subclasses called appertainTo. The purpose is to be able to determine > whether a given attribute appertains to a particular subject. > > template <typename Subject> > bool appertainTo(const Subject *S) const; > > If the attribute has no subjects, then the default behavior of > appertainTo is to return true. This makes it backwards compatible > with the fact that we've always ignored subjects previously (and many > attributes do not have a specific subject specified). > > If the attribute does have subjects, then the default appertainTo will > return false, but specializations will be generated that return true > for each subject case. If the subject happens to be a SubsetSubject, > the code from CheckCode is emitted (hence the reason for having the > subject passed into the function) and the proper base is taken from > the subject. > > ~Aaron
tablegen2.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
