[PATCH] Initial support for Attribute subjects

Aaron Ballman aaron at aaronballman.com
Mon Jun 24 10:34:16 PDT 2013


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 <aaron at aaronballman.com> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tablegen2.patch
Type: application/octet-stream
Size: 5932 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130624/8f3d36b9/attachment.obj>


More information about the cfe-commits mailing list