clang API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends
clang::AttributeList Class Reference

#include <AttributeList.h>

List of all members.

Classes

struct  PropertyData
struct  TypeTagForDatatypeData

Public Types

enum  Syntax {
  AS_GNU, AS_CXX11, AS_Declspec, AS_Keyword,
  AS_Pragma
}
 The style used to specify an attribute. More...
enum  Kind

Public Member Functions

IdentifierInfogetName () const
SourceLocation getLoc () const
SourceRange getRange () const
bool hasScope () const
IdentifierInfogetScopeName () const
SourceLocation getScopeLoc () const
bool hasParsedType () const
bool isDeclspecPropertyAttribute () const
 Is this the Microsoft __declspec(property) attribute?
bool isAlignasAttribute () const
bool isDeclspecAttribute () const
bool isCXX11Attribute () const
bool isKeywordAttribute () const
bool isInvalid () const
void setInvalid (bool b=true) const
bool isUsedAsTypeAttr () const
void setUsedAsTypeAttr ()
bool isPackExpansion () const
SourceLocation getEllipsisLoc () const
Kind getKind () const
AttributeListgetNext () const
void setNext (AttributeList *N)
unsigned getNumArgs () const
 getNumArgs - Return the number of actual arguments to this attribute.
ArgsUnion getArg (unsigned Arg) const
 getArg - Return the specified argument.
bool isArgExpr (unsigned Arg) const
ExprgetArgAsExpr (unsigned Arg) const
bool isArgIdent (unsigned Arg) const
IdentifierLocgetArgAsIdent (unsigned Arg) const
const AvailabilityChangegetAvailabilityIntroduced () const
const AvailabilityChangegetAvailabilityDeprecated () const
const AvailabilityChangegetAvailabilityObsoleted () const
SourceLocation getUnavailableLoc () const
const ExprgetMessageExpr () const
const ParsedTypegetMatchingCType () const
bool getLayoutCompatible () const
bool getMustBeNull () const
const ParsedTypegetTypeArg () const
const PropertyDatagetPropertyData () const
unsigned 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.
bool isTargetSpecificAttr () const
bool isTypeAttr () const
bool hasCustomParsing () const
unsigned getMinArgs () const
unsigned getMaxArgs () const
bool hasVariadicArg () const
bool diagnoseAppertainsTo (class Sema &S, const Decl *D) const
bool diagnoseLangOpts (class Sema &S) const
bool existsInTarget (const llvm::Triple &T) const
bool isKnownToGCC () const
unsigned 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.

Static Public Member Functions

static Kind getKind (const IdentifierInfo *Name, const IdentifierInfo *Scope, Syntax SyntaxUsed)

Friends

class AttributePool
class AttributeFactory

Detailed Description

AttributeList - 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 72 of file AttributeList.h.


Member Enumeration Documentation

Definition at line 321 of file AttributeList.h.

The style used to specify an attribute.

Enumerator:
AS_GNU 

__attribute__((...))

AS_CXX11 

[[...]]

AS_Declspec 

__declspec(...)

AS_Keyword 

__ptr16, alignas(...), etc.

AS_Pragma 

#pragma ...

Definition at line 75 of file AttributeList.h.


Member Function Documentation

bool AttributeList::diagnoseAppertainsTo ( class Sema S,
const Decl D 
) const

Definition at line 182 of file AttributeList.cpp.

References ParsedAttrInfo::DiagAppertainsToDecl, and getInfo().

Referenced by handleCommonAttributeFeatures().

Definition at line 186 of file AttributeList.cpp.

References ParsedAttrInfo::DiagLangOpts, and getInfo().

Referenced by handleCommonAttributeFeatures().

bool AttributeList::existsInTarget ( const llvm::Triple &  T) const

Definition at line 198 of file AttributeList.cpp.

References ParsedAttrInfo::ExistsInTarget, and getInfo().

Referenced by ProcessDeclAttribute().

getArg - Return the specified argument.

Definition at line 375 of file AttributeList.h.

Referenced by getArgAsExpr(), getArgAsIdent(), isArgExpr(), and isArgIdent().

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 137 of file AttributeList.cpp.

References clang::IdentifierInfo::getName().

Referenced by handleAcquireCapabilityAttr(), handleAcquiredAfterAttr(), handleAcquiredBeforeAttr(), handleAliasAttr(), handleAlignedAttr(), handleAlignValueAttr(), handleAlwaysInlineAttr(), handleAnalyzerNoReturnAttr(), handleAnnotateAttr(), handleArgumentWithTypeTagAttr(), handleARMInterruptAttr(), handleAssertCapabilityAttr(), handleAssertExclusiveLockAttr(), handleAssertSharedLockAttr(), handleAssumeAlignedAttr(), handleAttrWithMessage(), handleAvailabilityAttr(), handleBlocksAttr(), handleCallableWhenAttr(), handleCallConvAttr(), handleCapabilityAttr(), handleCFAuditedTransferAttr(), handleCFUnknownTransferAttr(), handleCleanupAttr(), handleColdAttr(), handleCommonAttr(), handleConstructorAttr(), handleConsumableAttr(), handleDeclspecThreadAttr(), handleDependencyAttr(), handleDestructorAttr(), handleDLLAttr(), handleEnableIfAttr(), handleExclusiveTrylockFunctionAttr(), handleFallThroughAttr(), handleFormatArgAttr(), handleFormatAttr(), handleGlobalAttr(), handleGNUInlineAttr(), handleGuardedByAttr(), handleHotAttr(), handleIBOutlet(), handleIBOutletCollection(), handleInitPriorityAttr(), handleLaunchBoundsAttr(), handleLockReturnedAttr(), handleLocksExcludedAttr(), handleMallocAttr(), handleModeAttr(), handleMSInheritanceAttr(), handleMSP430InterruptAttr(), handleNoDebugAttr(), handleNonNullAttr(), handleNonNullAttrParameter(), handleNoReturnAttr(), handleNSConsumedAttr(), handleNSReturnsRetainedAttr(), handleObjCBridgeAttr(), handleObjCBridgeMutableAttr(), handleObjCBridgeRelatedAttr(), handleObjCDesignatedInitializer(), handleObjCMethodFamilyAttr(), handleObjCNSObject(), handleObjCPreciseLifetimeAttr(), handleObjCRequiresSuperAttr(), handleObjCReturnsInnerPointerAttr(), handleObjCRuntimeName(), handleObjCSuppresProtocolAttr(), handleOptimizeNoneAttr(), handleOwnershipAttr(), handlePackedAttr(), handleParamTypestateAttr(), handlePtGuardedByAttr(), handlePtGuardedVarAttr(), handleReleaseCapabilityAttr(), handleRequiresCapabilityAttr(), handleReturnsNonNullAttr(), handleReturnTypestateAttr(), handleSectionAttr(), handleSentinelAttr(), handleSetTypestateAttr(), handleSharedTrylockFunctionAttr(), handleSimpleAttribute(), handleTestTypestateAttr(), handleTLSModelAttr(), handleTransparentUnionAttr(), handleTryAcquireCapabilityAttr(), handleTypeTagForDatatypeAttr(), handleUsedAttr(), handleUuidAttr(), handleVecReturnAttr(), handleVecTypeHint(), handleVisibilityAttr(), handleWarnUnusedResult(), handleWeakImportAttr(), handleWeakRefAttr(), handleWorkGroupSize(), and handleX86ForceAlignArgPointerAttr().

Definition at line 399 of file AttributeList.h.

References getKind().

Referenced by handleAvailabilityAttr().

Definition at line 394 of file AttributeList.h.

References getKind().

Referenced by handleAvailabilityAttr().

Definition at line 404 of file AttributeList.h.

References getKind().

Referenced by handleAvailabilityAttr().

Definition at line 362 of file AttributeList.h.

Referenced by handleAlignedAttr().

Kind clang::AttributeList::getKind ( ) const [inline]
AttributeList::Kind AttributeList::getKind ( const IdentifierInfo Name,
const IdentifierInfo Scope,
Syntax  SyntaxUsed 
) [static]

Definition at line 111 of file AttributeList.cpp.

References AS_CXX11, AS_GNU, and clang::IdentifierInfo::getName().

Definition at line 330 of file AttributeList.h.

References clang::SourceRange::getBegin().

Referenced by attrNonNullArgCheck(), checkAcquireOrderAttrCommon(), checkAttrArgsAreCapabilityObjs(), checkAttributeNumArgsImpl(), checkAttrMutualExclusion(), clang::Sema::CheckCallingConvAttr(), checkForConsumableClass(), checkFunctionOrMethodParameterIndex(), checkIBOutletCommon(), clang::Sema::CheckRegparmAttr(), checkTryLockFunAttrCommon(), checkUInt32Argument(), checkUnusedDeclAttributes(), diagnoseBadTypeAttribute(), fillAttributedTypeLoc(), HandleAddressSpaceTypeAttribute(), handleAliasAttr(), handleAlignedAttr(), handleAnalyzerNoReturnAttr(), handleArgumentWithTypeTagAttr(), handleARMInterruptAttr(), handleAvailabilityAttr(), handleBlocksAttr(), handleCallConvAttr(), handleCleanupAttr(), handleCommonAttr(), handleConsumableAttr(), handleDeclspecThreadAttr(), handleDependencyAttr(), handleDeprecatedAttr(), handleEnableIfAttr(), HandleExtVectorTypeAttr(), handleFormatArgAttr(), handleFormatAttr(), handleFunctionTypeAttr(), handleGNUInlineAttr(), handleIBOutletCollection(), handleInitPriorityAttr(), handleMallocAttr(), handleModeAttr(), handleMSInheritanceAttr(), handleMSP430InterruptAttr(), handleMSPointerTypeQualifierAttr(), HandleNeonVectorTypeAttr(), handleNoDebugAttr(), handleNonNullAttr(), handleNonNullAttrParameter(), handleNoReturnAttr(), handleObjCGCTypeAttr(), handleObjCMethodFamilyAttr(), handleObjCOwnershipTypeAttr(), handleObjCPreciseLifetimeAttr(), handleObjCReturnsInnerPointerAttr(), handleObjCSuppresProtocolAttr(), handleOwnershipAttr(), handlePackedAttr(), handleParamTypestateAttr(), handleReturnTypestateAttr(), handleSentinelAttr(), handleSetTypestateAttr(), handleTestTypestateAttr(), handleTransparentUnionAttr(), handleTypeTagForDatatypeAttr(), handleUsedAttr(), handleUuidAttr(), handleVecReturnAttr(), HandleVectorSizeAttr(), handleVecTypeHint(), handleVisibilityAttr(), handleWarnUnusedResult(), handleWeakImportAttr(), handleWeakRefAttr(), handleWorkGroupSize(), handleX86ForceAlignArgPointerAttr(), clang::Sema::ParsedFreeStandingDeclSpec(), ProcessDeclAttribute(), clang::Sema::ProcessDeclAttributeList(), ProcessStmtAttribute(), processTypeAttrs(), and threadSafetyCheckIsPointer().

Definition at line 174 of file AttributeList.cpp.

References getInfo(), getMinArgs(), and ParsedAttrInfo::OptArgs.

Referenced by handleCommonAttributeFeatures().

const Expr* clang::AttributeList::getMessageExpr ( ) const [inline]

Definition at line 414 of file AttributeList.h.

References getKind().

Referenced by handleAvailabilityAttr().

Definition at line 170 of file AttributeList.cpp.

References getInfo(), and ParsedAttrInfo::NumArgs.

Referenced by getMaxArgs(), and handleCommonAttributeFeatures().

Definition at line 329 of file AttributeList.h.

Referenced by attrNonNullArgCheck(), checkAcquireOrderAttrCommon(), checkAttrArgsAreCapabilityObjs(), checkAttributeNumArgsImpl(), checkAttrMutualExclusion(), clang::Sema::CheckCallingConvAttr(), checkFunctionOrMethodParameterIndex(), checkIBOutletCommon(), clang::Sema::checkStringLiteralArgumentAttr(), checkTryLockFunAttrCommon(), checkUInt32Argument(), checkUnusedDeclAttributes(), diagnoseBadTypeAttribute(), HandleAddressSpaceTypeAttribute(), handleAlignedAttr(), handleAnalyzerNoReturnAttr(), handleArgumentWithTypeTagAttr(), handleARMInterruptAttr(), handleAvailabilityAttr(), handleBlocksAttr(), handleCallableWhenAttr(), handleCallConvAttr(), handleCleanupAttr(), handleCommonAttr(), handleConsumableAttr(), handleDLLAttr(), HandleExtVectorTypeAttr(), handleFormatAttr(), handleIBOutletCollection(), handleInitPriorityAttr(), handleModeAttr(), handleMSInheritanceAttr(), handleMSP430InterruptAttr(), handleMSPointerTypeQualifierAttr(), HandleNeonVectorTypeAttr(), handleNoDebugAttr(), handleNoReturnAttr(), handleNSConsumedAttr(), handleNSReturnsRetainedAttr(), handleObjCBridgeAttr(), handleObjCBridgeMutableAttr(), handleObjCBridgeRelatedAttr(), handleObjCGCTypeAttr(), handleObjCMethodFamilyAttr(), handleObjCOwnershipAttr(), handleObjCOwnershipTypeAttr(), handleObjCRequiresSuperAttr(), handleObjCReturnsInnerPointerAttr(), handleObjCSuppresProtocolAttr(), handleOwnershipAttr(), handlePackedAttr(), handleParamTypestateAttr(), handleReturnTypestateAttr(), handleSentinelAttr(), handleSetTypestateAttr(), handleTestTypestateAttr(), handleTransparentUnionAttr(), handleTypeTagForDatatypeAttr(), handleUsedAttr(), handleUuidAttr(), HandleVectorSizeAttr(), handleVecTypeHint(), handleVisibilityAttr(), handleWarnUnusedResult(), handleWeakImportAttr(), handleWeakRefAttr(), handleWorkGroupSize(), handleX86ForceAlignArgPointerAttr(), clang::Sema::ParsedFreeStandingDeclSpec(), ProcessDeclAttribute(), ProcessStmtAttribute(), processTypeAttrs(), and threadSafetyCheckIsPointer().

Definition at line 442 of file AttributeList.h.

References isDeclspecPropertyAttribute().

Referenced by clang::Sema::HandleMSProperty().

Definition at line 331 of file AttributeList.h.

Referenced by checkUnusedDeclAttributes(), clang::Declarator::getCXX11AttributeRanges(), handleAcquireCapabilityAttr(), handleAcquiredAfterAttr(), handleAcquiredBeforeAttr(), handleAliasAttr(), handleAlignedAttr(), handleAlignValueAttr(), handleAlwaysInlineAttr(), handleAnalyzerNoReturnAttr(), handleAnnotateAttr(), handleArgumentWithTypeTagAttr(), handleAssertCapabilityAttr(), handleAssertExclusiveLockAttr(), handleAssertSharedLockAttr(), handleAssumeAlignedAttr(), handleAttrWithMessage(), handleAvailabilityAttr(), handleBlocksAttr(), handleCallableWhenAttr(), handleCallConvAttr(), handleCapabilityAttr(), handleCFAuditedTransferAttr(), handleCFUnknownTransferAttr(), handleCleanupAttr(), handleColdAttr(), handleCommonAttr(), handleConstructorAttr(), handleConsumableAttr(), handleDeclspecThreadAttr(), handleDependencyAttr(), handleDestructorAttr(), handleDLLAttr(), handleEnableIfAttr(), handleExclusiveTrylockFunctionAttr(), handleFallThroughAttr(), handleFormatArgAttr(), handleFormatAttr(), handleGlobalAttr(), handleGNUInlineAttr(), handleGuardedByAttr(), handleHotAttr(), handleIBOutlet(), handleIBOutletCollection(), handleInitPriorityAttr(), handleLaunchBoundsAttr(), handleLockReturnedAttr(), handleLocksExcludedAttr(), handleLoopHintAttr(), handleMallocAttr(), handleModeAttr(), handleMSInheritanceAttr(), handleNoDebugAttr(), handleNonNullAttr(), handleNonNullAttrParameter(), handleNoReturnAttr(), handleNSConsumedAttr(), handleNSReturnsRetainedAttr(), handleObjCBridgeAttr(), handleObjCBridgeMutableAttr(), handleObjCBridgeRelatedAttr(), handleObjCDesignatedInitializer(), handleObjCMethodFamilyAttr(), handleObjCNSObject(), handleObjCOwnershipAttr(), handleObjCPreciseLifetimeAttr(), handleObjCRequiresSuperAttr(), handleObjCReturnsInnerPointerAttr(), handleObjCRuntimeName(), handleObjCSuppresProtocolAttr(), handleOptimizeNoneAttr(), handlePackedAttr(), handleParamTypestateAttr(), handlePtGuardedByAttr(), handlePtGuardedVarAttr(), handleReleaseCapabilityAttr(), handleRequiresCapabilityAttr(), handleReturnsNonNullAttr(), handleReturnTypestateAttr(), handleSectionAttr(), handleSentinelAttr(), handleSetTypestateAttr(), handleSharedTrylockFunctionAttr(), handleSimpleAttribute(), handleTestTypestateAttr(), handleTLSModelAttr(), handleTransparentUnionAttr(), handleTryAcquireCapabilityAttr(), handleTypeTagForDatatypeAttr(), handleUsedAttr(), handleUuidAttr(), handleVecReturnAttr(), handleVisibilityAttr(), handleWarnUnusedResult(), handleWeakImportAttr(), handleWeakRefAttr(), handleWorkGroupSize(), handleX86ForceAlignArgPointerAttr(), and ProcessStmtAttribute().

Definition at line 335 of file AttributeList.h.

Definition at line 334 of file AttributeList.h.

Referenced by processTypeAttrs().

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 206 of file AttributeList.cpp.

References getInfo(), and ParsedAttrInfo::SpellingIndexToSemanticSpelling.

Referenced by handleMSInheritanceAttr().

const ParsedType& clang::AttributeList::getTypeArg ( ) const [inline]

Definition at line 437 of file AttributeList.h.

Referenced by handleIBOutletCollection(), and handleVecTypeHint().

Definition at line 409 of file AttributeList.h.

References getKind().

Referenced by handleAvailabilityAttr().

Definition at line 178 of file AttributeList.cpp.

References getInfo(), and ParsedAttrInfo::HasCustomParsing.

Referenced by handleCommonAttributeFeatures().

Definition at line 333 of file AttributeList.h.

Definition at line 210 of file AttributeList.cpp.

References getInfo(), and ParsedAttrInfo::OptArgs.

Referenced by handleCommonAttributeFeatures().

Definition at line 344 of file AttributeList.h.

References AS_Keyword, and getKind().

Referenced by isCXX11Attribute().

Definition at line 380 of file AttributeList.h.

References getArg().

Referenced by fillAttributedTypeLoc(), getCCTypeAttrKind(), and handleMSP430InterruptAttr().

Definition at line 349 of file AttributeList.h.

References AS_Declspec.

Referenced by ProcessDeclAttribute(), and ProcessStmtAttribute().

Is this the Microsoft __declspec(property) attribute?

Definition at line 340 of file AttributeList.h.

Referenced by getPropertyData().

Definition at line 353 of file AttributeList.h.

References AS_Keyword.

Definition at line 202 of file AttributeList.cpp.

References getInfo(), and ParsedAttrInfo::IsKnownToGCC.

Definition at line 361 of file AttributeList.h.

References clang::SourceLocation::isValid().

Referenced by handleAlignedAttr().

Definition at line 190 of file AttributeList.cpp.

References getInfo(), and ParsedAttrInfo::IsTargetSpecific.

Definition at line 194 of file AttributeList.cpp.

References getInfo(), and ParsedAttrInfo::IsType.

Referenced by ProcessDeclAttribute().

Definition at line 358 of file AttributeList.h.

Referenced by checkUnusedDeclAttributes(), and takeDeclAttributes().

void clang::AttributeList::setInvalid ( bool  b = true) const [inline]

Definition at line 359 of file AttributeList.h.

Referenced by processTypeAttrs().


Friends And Related Function Documentation

friend class AttributeFactory [friend]

Definition at line 318 of file AttributeList.h.

friend class AttributePool [friend]

Definition at line 317 of file AttributeList.h.


The documentation for this class was generated from the following files: