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

Attachment: tablegen.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to