#include "clang/Basic/Attributes.h"
#include "clang/Basic/AttrSubjectMatchRules.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/ParsedAttrInfo.h"
#include "clang/Basic/TargetInfo.h"
usingnamespaceclang;
static int hasAttributeImpl(AttributeCommonInfo::Syntax Syntax, StringRef Name,
StringRef ScopeName, const TargetInfo &Target,
const LangOptions &LangOpts) { … }
int clang::hasAttribute(AttributeCommonInfo::Syntax Syntax,
const IdentifierInfo *Scope, const IdentifierInfo *Attr,
const TargetInfo &Target, const LangOptions &LangOpts) { … }
const char *attr::getSubjectMatchRuleSpelling(attr::SubjectMatchRule Rule) { … }
static StringRef
normalizeAttrScopeName(const IdentifierInfo *Scope,
AttributeCommonInfo::Syntax SyntaxUsed) { … }
static StringRef normalizeAttrName(const IdentifierInfo *Name,
StringRef NormalizedScopeName,
AttributeCommonInfo::Syntax SyntaxUsed) { … }
bool AttributeCommonInfo::isGNUScope() const { … }
bool AttributeCommonInfo::isClangScope() const { … }
#include "clang/Sema/AttrParsedAttrKinds.inc"
static SmallString<64> normalizeName(const IdentifierInfo *Name,
const IdentifierInfo *Scope,
AttributeCommonInfo::Syntax SyntaxUsed) { … }
AttributeCommonInfo::Kind
AttributeCommonInfo::getParsedKind(const IdentifierInfo *Name,
const IdentifierInfo *ScopeName,
Syntax SyntaxUsed) { … }
std::string AttributeCommonInfo::getNormalizedFullName() const { … }
unsigned AttributeCommonInfo::calculateAttributeSpellingListIndex() const { … }