4 #include "llvm/ADT/StringSwitch.h"
12 if (Name.size() >= 4 && Name.startswith(
"__") && Name.endswith(
"__"))
13 Name = Name.substr(2, Name.size() - 4);
15 #include "clang/Basic/AttrHasAttributeImpl.inc"
22 #define ATTR_MATCH_RULE(NAME, SPELLING, IsAbstract) \
25 #include "clang/Basic/AttrSubMatchRulesList.inc"
27 llvm_unreachable(
"Invalid subject match rule");
One of these records is kept for each identifier that is lexed.
SubjectMatchRule
A list of all the recognized kinds of attributes.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
Scope - A scope is a transient data structure that is used while parsing the program.
int hasAttribute(AttrSyntax Syntax, const IdentifierInfo *Scope, const IdentifierInfo *Attr, const TargetInfo &Target, const LangOptions &LangOpts)
Return the version number associated with the attribute if we recognize and implement the attribute s...
Exposes information about the current target.
StringRef getName() const
Return the actual identifier string.
Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.
const char * getSubjectMatchRuleSpelling(SubjectMatchRule Rule)
Attr - This represents one attribute.