clang
8.0.0
|
ParsedAttr - Represents a syntactic attribute. More...
#include "clang/Sema/ParsedAttr.h"
Public Types | |
enum | Syntax { AS_GNU, AS_CXX11, AS_C2x, AS_Declspec, AS_Microsoft, AS_Keyword, AS_Pragma, AS_ContextSensitiveKeyword } |
The style used to specify an attribute. More... | |
enum | Kind { IgnoredAttribute, UnknownAttribute } |
Static Public Member Functions | |
static Kind | getKind (const IdentifierInfo *Name, const IdentifierInfo *Scope, Syntax SyntaxUsed) |
Friends | |
class | AttributeFactory |
class | AttributePool |
ParsedAttr - Represents a syntactic attribute.
For a GNU attribute, there are four forms of this construct:
1: attribute(( const )). ParmName/Args/NumArgs will all be unused. 2: attribute(( mode(byte) )). ParmName used, Args/NumArgs unused. 3: attribute(( format(printf, 1, 2) )). ParmName/Args/NumArgs all used. 4: attribute(( aligned(16) )). ParmName is unused, Args/Num used.
Definition at line 117 of file ParsedAttr.h.
Enumerator | |
---|---|
IgnoredAttribute | |
UnknownAttribute |
Definition at line 370 of file ParsedAttr.h.
The style used to specify an attribute.
Definition at line 140 of file ParsedAttr.h.
|
delete |
|
delete |
|
delete |
bool ParsedAttr::appliesToDecl | ( | const Decl * | D, |
attr::SubjectMatchRule | MatchRule | ||
) | const |
Definition at line 212 of file ParsedAttr.cpp.
Referenced by clang::Sema::AddPragmaAttributes().
Definition at line 208 of file ParsedAttr.cpp.
Referenced by HandleLifetimeBoundAttr().
Definition at line 224 of file ParsedAttr.cpp.
bool ParsedAttr::existsInTarget | ( | const TargetInfo & | Target | ) | const |
Definition at line 236 of file ParsedAttr.cpp.
References ParsedAttrInfo::ExistsInTarget, and getInfo().
|
inline |
getArg - Return the specified argument.
Definition at line 451 of file ParsedAttr.h.
|
inline |
Definition at line 460 of file ParsedAttr.h.
Referenced by clang::Sema::checkStringLiteralArgumentAttr(), getCCTypeAttr(), HandleAddressSpaceTypeAttribute(), HandleExtVectorTypeAttr(), HandleNeonVectorTypeAttr(), and HandleVectorSizeAttr().
|
inline |
Definition at line 468 of file ParsedAttr.h.
Referenced by clang::Sema::checkStringLiteralArgumentAttr(), getCCTypeAttr(), HandleAddressSpaceTypeAttribute(), HandleExtVectorTypeAttr(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), and HandleVectorSizeAttr().
unsigned ParsedAttr::getAttributeSpellingListIndex | ( | ) | const |
Get an index into the attribute spelling list defined in Attr.td.
This index is used by an attribute to pretty print itself.
Definition at line 157 of file ParsedAttr.cpp.
References normalizeAttrScopeName().
Referenced by checkObjCKindOfType(), createSimpleAttr(), getCCTypeAttr(), HandleAddressSpaceTypeAttribute(), handleObjCGCTypeAttr(), and handleObjCOwnershipTypeAttr().
|
inline |
Definition at line 477 of file ParsedAttr.h.
References clang::detail::DeprecatedSlot, and getKind().
|
inline |
Definition at line 472 of file ParsedAttr.h.
References getKind(), and clang::detail::IntroducedSlot.
|
inline |
Definition at line 482 of file ParsedAttr.h.
References getKind(), and clang::detail::ObsoletedSlot.
|
inline |
Definition at line 441 of file ParsedAttr.h.
|
inline |
Definition at line 443 of file ParsedAttr.h.
References getKind().
Referenced by attributeParsedArgsUnevaluated(), checkNullabilityTypeSpecifier(), distributeNullabilityTypeAttr(), distributeObjCPointerTypeAttr(), getCCTypeAttr(), getInfo(), HandleAddressSpaceTypeAttribute(), handleFunctionTypeAttr(), handleMSPointerTypeQualifierAttr(), handleObjCPointerTypeAttr(), clang::ParsedAttributesView::hasAttribute(), and IsBuiltInOrStandardCXX11Attribute().
|
static |
Definition at line 137 of file ParsedAttr.cpp.
|
inline |
Definition at line 513 of file ParsedAttr.h.
References getKind().
|
inline |
Definition at line 379 of file ParsedAttr.h.
References clang::SourceRange::getBegin().
Referenced by checkNullabilityTypeSpecifier(), checkObjCKindOfType(), distributeNullabilityTypeAttr(), getAttrLoc(), HandleAddressSpaceTypeAttribute(), HandleExtVectorTypeAttr(), handleFunctionTypeAttr(), handleMSPointerTypeQualifierAttr(), HandleNeonVectorTypeAttr(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), HandleOpenCLAccessAttr(), and HandleVectorSizeAttr().
|
inline |
Definition at line 507 of file ParsedAttr.h.
References getKind().
void ParsedAttr::getMatchRules | ( | const LangOptions & | LangOpts, |
SmallVectorImpl< std::pair< attr::SubjectMatchRule, bool >> & | MatchRules | ||
) | const |
Definition at line 217 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::GetPragmaAttributeMatchRules.
Referenced by clang::Sema::ActOnPragmaAttributeAttribute().
unsigned ParsedAttr::getMaxArgs | ( | ) | const |
Definition at line 200 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::OptArgs.
Referenced by IsBuiltInOrStandardCXX11Attribute().
|
inline |
Definition at line 497 of file ParsedAttr.h.
References getKind().
unsigned ParsedAttr::getMinArgs | ( | ) | const |
Definition at line 198 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::NumArgs.
|
inline |
Definition at line 519 of file ParsedAttr.h.
References getKind().
|
inline |
Definition at line 378 of file ParsedAttr.h.
Referenced by clang::Sema::ActOnPragmaAttributeAttribute(), distributeNullabilityTypeAttr(), handleMSPointerTypeQualifierAttr(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), HandleOpenCLAccessAttr(), and clang::operator<<().
|
inline |
getNumArgs - Return the number of actual arguments to this attribute.
Definition at line 448 of file ParsedAttr.h.
Referenced by getNumAttributeArgs(), HandleAddressSpaceTypeAttribute(), HandleExtVectorTypeAttr(), handleFunctionTypeAttr(), HandleNeonVectorTypeAttr(), handleObjCGCTypeAttr(), and HandleVectorSizeAttr().
|
inline |
Definition at line 427 of file ParsedAttr.h.
|
inline |
Definition at line 530 of file ParsedAttr.h.
|
inline |
Definition at line 536 of file ParsedAttr.h.
|
inline |
Definition at line 380 of file ParsedAttr.h.
Referenced by createSimpleAttr(), getCCTypeAttr(), HandleAddressSpaceTypeAttribute(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), and HandleOpenCLAccessAttr().
|
inline |
Definition at line 502 of file ParsedAttr.h.
References getKind().
|
inline |
Definition at line 384 of file ParsedAttr.h.
|
inline |
Definition at line 383 of file ParsedAttr.h.
unsigned ParsedAttr::getSemanticSpelling | ( | ) | const |
If the parsed attribute has a semantic equivalent, and it would have a semantic Spelling enumeration (due to having semantically-distinct spelling variations), return the value of that semantic spelling.
If the parsed attribute does not have a semantic equivalent, or would not have a Spelling enumeration, the value UINT_MAX is returned.
Definition at line 246 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::SpellingIndexToSemanticSpelling.
Referenced by HandleOpenCLAccessAttr().
|
inline |
Definition at line 487 of file ParsedAttr.h.
References getKind().
|
inline |
Definition at line 525 of file ParsedAttr.h.
|
inline |
Definition at line 492 of file ParsedAttr.h.
References getKind().
bool ParsedAttr::hasCustomParsing | ( | ) | const |
Definition at line 204 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::HasCustomParsing.
|
inline |
Definition at line 391 of file ParsedAttr.h.
Referenced by getNumAttributeArgs().
|
inline |
Definition at line 425 of file ParsedAttr.h.
|
inline |
Definition at line 382 of file ParsedAttr.h.
bool ParsedAttr::hasVariadicArg | ( | ) | const |
Definition at line 250 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::OptArgs.
|
inline |
Definition at line 398 of file ParsedAttr.h.
References getKind().
|
inline |
Definition at line 456 of file ParsedAttr.h.
Referenced by getCCTypeAttr().
|
inline |
Definition at line 464 of file ParsedAttr.h.
Referenced by clang::Sema::checkStringLiteralArgumentAttr(), HandleAddressSpaceTypeAttribute(), HandleExtVectorTypeAttr(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), and HandleVectorSizeAttr().
|
inline |
Definition at line 410 of file ParsedAttr.h.
|
inline |
Definition at line 418 of file ParsedAttr.h.
Referenced by checkNullabilityTypeSpecifier(), and distributeNullabilityTypeAttr().
|
inline |
Definition at line 406 of file ParsedAttr.h.
Referenced by distributeFunctionTypeAttrFromDeclSpec().
|
inline |
Definition at line 403 of file ParsedAttr.h.
|
inline |
Is this the Microsoft __declspec(property) attribute?
Definition at line 394 of file ParsedAttr.h.
Referenced by getMSPropertyAttr().
|
inline |
Definition at line 386 of file ParsedAttr.h.
References clang::IdentifierInfo::isStr().
|
inline |
Definition at line 422 of file ParsedAttr.h.
Referenced by getCCTypeAttr().
|
inline |
Definition at line 414 of file ParsedAttr.h.
bool ParsedAttr::isKnownToGCC | ( | ) | const |
Definition at line 240 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::IsKnownToGCC.
|
inline |
Definition at line 404 of file ParsedAttr.h.
|
inline |
Definition at line 440 of file ParsedAttr.h.
References clang::SourceLocation::isValid().
bool ParsedAttr::isStmtAttr | ( | ) | const |
Definition at line 234 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::IsStmt.
bool ParsedAttr::isSupportedByPragmaAttribute | ( | ) | const |
Definition at line 242 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::IsSupportedByPragmaAttribute.
bool ParsedAttr::isTargetSpecificAttr | ( | ) | const |
Definition at line 228 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::IsTargetSpecific.
bool ParsedAttr::isTypeAttr | ( | ) | const |
Definition at line 232 of file ParsedAttr.cpp.
References getInfo(), and ParsedAttrInfo::IsType.
|
inline |
Definition at line 437 of file ParsedAttr.h.
|
delete |
|
delete |
|
delete |
Definition at line 423 of file ParsedAttr.h.
Referenced by HandleAddressSpaceTypeAttribute(), handleFunctionTypeAttr(), HandleNeonVectorTypeAttr(), handleObjCGCTypeAttr(), handleObjCOwnershipTypeAttr(), HandleOpenCLAccessAttr(), HandleVectorSizeAttr(), and IsBuiltInOrStandardCXX11Attribute().
|
inline |
Definition at line 432 of file ParsedAttr.h.
|
inline |
Definition at line 438 of file ParsedAttr.h.
Referenced by createSimpleAttr().
|
friend |
Definition at line 230 of file ParsedAttr.h.
|
friend |
Definition at line 231 of file ParsedAttr.h.