[PATCH] Initial support for Attribute subjects
aaron at aaronballman.com
Wed Jul 3 06:15:50 PDT 2013
On Thu, Jun 27, 2013 at 8:44 AM, Aaron Ballman <aaron at aaronballman.com> wrote:
> On Mon, Jun 24, 2013 at 1:34 PM, Aaron Ballman <aaron at aaronballman.com> wrote:
>> 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.
>> 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.
More information about the cfe-commits