clang 19.0.0git
Public Member Functions | Friends | List of all members
clang::ParsedAttr Class Referencefinal

ParsedAttr - Represents a syntactic attribute. More...

#include "clang/Sema/ParsedAttr.h"

Inheritance diagram for clang::ParsedAttr:
Inheritance graph
[legend]

Public Member Functions

 ParsedAttr (const ParsedAttr &)=delete
 
 ParsedAttr (ParsedAttr &&)=delete
 
ParsedAttroperator= (const ParsedAttr &)=delete
 
ParsedAttroperator= (ParsedAttr &&)=delete
 
 ~ParsedAttr ()=delete
 
void operator delete (void *)=delete
 
bool hasParsedType () const
 
bool isDeclspecPropertyAttribute () const
 Is this the Microsoft __declspec(property) attribute?
 
bool isInvalid () const
 
void setInvalid (bool b=true) const
 
bool hasProcessingCache () const
 
unsigned getProcessingCache () const
 
void setProcessingCache (unsigned value) const
 
bool isUsedAsTypeAttr () const
 
void setUsedAsTypeAttr (bool Used=true)
 
bool isPragmaClangAttribute () const
 True if the attribute is specified using '#pragma clang attribute'.
 
void setIsPragmaClangAttribute ()
 
bool isPackExpansion () const
 
SourceLocation getEllipsisLoc () const
 
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 getStrictLoc () const
 
SourceLocation getUnavailableLoc () const
 
const ExprgetMessageExpr () const
 
const ExprgetReplacementExpr () const
 
const ParsedTypegetMatchingCType () const
 
bool getLayoutCompatible () const
 
bool getMustBeNull () const
 
const ParsedTypegetTypeArg () const
 
IdentifierInfogetPropertyDataGetter () const
 
IdentifierInfogetPropertyDataSetter () const
 
void setMacroIdentifier (IdentifierInfo *MacroName, SourceLocation Loc)
 Set the macro identifier info object that this parsed attribute was declared in if it was declared in a macro.
 
bool hasMacroIdentifier () const
 Returns true if this attribute was declared in a macro.
 
IdentifierInfogetMacroIdentifier () const
 Return the macro identifier if this attribute was declared in a macro.
 
SourceLocation getMacroExpansionLoc () const
 
bool checkExactlyNumArgs (class Sema &S, unsigned Num) const
 Check if the attribute has exactly as many args as Num.
 
bool checkAtLeastNumArgs (class Sema &S, unsigned Num) const
 Check if the attribute has at least as many args as Num.
 
bool checkAtMostNumArgs (class Sema &S, unsigned Num) const
 Check if the attribute has at most as many args as Num.
 
bool isTargetSpecificAttr () const
 
bool isTypeAttr () const
 
bool isStmtAttr () const
 
bool hasCustomParsing () const
 
bool acceptsExprPack () const
 
bool isParamExpr (size_t N) const
 
unsigned getMinArgs () const
 
unsigned getMaxArgs () const
 
unsigned getNumArgMembers () const
 
bool hasVariadicArg () const
 
void handleAttrWithDelayedArgs (Sema &S, Decl *D) const
 
bool diagnoseAppertainsTo (class Sema &S, const Decl *D) const
 
bool diagnoseAppertainsTo (class Sema &S, const Stmt *St) const
 
bool diagnoseMutualExclusion (class Sema &S, const Decl *D) const
 
bool diagnoseMutualExclusion (class Sema &S, const Stmt *St) const
 
bool appliesToDecl (const Decl *D, attr::SubjectMatchRule MatchRule) const
 
void getMatchRules (const LangOptions &LangOpts, SmallVectorImpl< std::pair< attr::SubjectMatchRule, bool > > &MatchRules) const
 
bool diagnoseLangOpts (class Sema &S) const
 
bool existsInTarget (const TargetInfo &Target) const
 
bool isKnownToGCC () const
 
bool isSupportedByPragmaAttribute () const
 
bool slidesFromDeclToDeclSpecLegacyBehavior () const
 Returns whether a [[]] attribute, if specified ahead of a declaration, should be applied to the decl-specifier-seq instead (i.e.
 
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.
 
LangAS asOpenCLLangAS () const
 If this is an OpenCL address space attribute, returns its representation in LangAS, otherwise returns default address space.
 
LangAS asSYCLLangAS () const
 If this is an OpenCL address space attribute, returns its SYCL representation in LangAS, otherwise returns default address space.
 
LangAS asHLSLLangAS () const
 If this is an HLSL address space attribute, returns its representation in LangAS, otherwise returns default address space.
 
AttributeCommonInfo::Kind getKind () const
 
const ParsedAttrInfogetInfo () const
 
- Public Member Functions inherited from clang::AttributeCommonInfo
 AttributeCommonInfo (const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, SourceLocation ScopeLoc, Kind AttrKind, Form FormUsed)
 
 AttributeCommonInfo (const IdentifierInfo *AttrName, const IdentifierInfo *ScopeName, SourceRange AttrRange, SourceLocation ScopeLoc, Form FormUsed)
 
 AttributeCommonInfo (const IdentifierInfo *AttrName, SourceRange AttrRange, Form FormUsed)
 
 AttributeCommonInfo (SourceRange AttrRange, Kind K, Form FormUsed)
 
 AttributeCommonInfo (AttributeCommonInfo &&)=default
 
 AttributeCommonInfo (const AttributeCommonInfo &)=default
 
Kind getParsedKind () const
 
Syntax getSyntax () const
 
Form getForm () const
 
const IdentifierInfogetAttrName () const
 
void setAttrName (const IdentifierInfo *AttrNameII)
 
SourceLocation getLoc () const
 
SourceRange getRange () const
 
void setRange (SourceRange R)
 
bool hasScope () const
 
const IdentifierInfogetScopeName () const
 
SourceLocation getScopeLoc () const
 
std::string getNormalizedFullName () const
 Gets the normalized full name, which consists of both scope and name and with surrounding underscores removed as appropriate (e.g.
 
bool isDeclspecAttribute () const
 
bool isMicrosoftAttribute () const
 
bool isGNUScope () const
 
bool isClangScope () const
 
bool isCXX11Attribute () const
 
bool isC23Attribute () const
 
bool isAlignas () const
 
bool isStandardAttributeSyntax () const
 The attribute is spelled [[]] in either C or C++ mode, including standard attributes spelled with a keyword, like alignas.
 
bool isGNUAttribute () const
 
bool isKeywordAttribute () const
 
bool isRegularKeywordAttribute () const
 
bool isContextSensitiveKeywordAttribute () const
 
unsigned getAttributeSpellingListIndex () const
 
void setAttributeSpellingListIndex (unsigned V)
 

Friends

class AttributeFactory
 
class AttributePool
 

Additional Inherited Members

- Public Types inherited from clang::AttributeCommonInfo
enum  Syntax {
  AS_GNU = 1 , AS_CXX11 , AS_C23 , AS_Declspec ,
  AS_Microsoft , AS_Keyword , AS_Pragma , AS_ContextSensitiveKeyword ,
  AS_HLSLSemantic , AS_Implicit
}
 The style used to specify an attribute. More...
 
enum  Kind { NoSemaHandlerAttribute , IgnoredAttribute , UnknownAttribute }
 
- Static Public Member Functions inherited from clang::AttributeCommonInfo
static Kind getParsedKind (const IdentifierInfo *Name, const IdentifierInfo *Scope, Syntax SyntaxUsed)
 
- Protected Member Functions inherited from clang::AttributeCommonInfo
bool isAttributeSpellingListCalculated () const
 
- Static Protected Attributes inherited from clang::AttributeCommonInfo
static constexpr unsigned SpellingNotCalculated = 0xf
 

Detailed Description

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 122 of file ParsedAttr.h.

Constructor & Destructor Documentation

◆ ParsedAttr() [1/2]

clang::ParsedAttr::ParsedAttr ( const ParsedAttr )
delete

◆ ParsedAttr() [2/2]

clang::ParsedAttr::ParsedAttr ( ParsedAttr &&  )
delete

◆ ~ParsedAttr()

clang::ParsedAttr::~ParsedAttr ( )
delete

Member Function Documentation

◆ acceptsExprPack()

bool ParsedAttr::acceptsExprPack ( ) const

Definition at line 260 of file ParsedAttr.cpp.

References clang::ParsedAttrInfo::AcceptsExprPack, and getInfo().

Referenced by MustDelayAttributeArguments().

◆ appliesToDecl()

bool ParsedAttr::appliesToDecl ( const Decl D,
attr::SubjectMatchRule  MatchRule 
) const

Definition at line 174 of file ParsedAttr.cpp.

◆ asHLSLLangAS()

LangAS clang::ParsedAttr::asHLSLLangAS ( ) const
inline

If this is an HLSL address space attribute, returns its representation in LangAS, otherwise returns default address space.

Definition at line 608 of file ParsedAttr.h.

◆ asOpenCLLangAS()

LangAS clang::ParsedAttr::asOpenCLLangAS ( ) const
inline

If this is an OpenCL address space attribute, returns its representation in LangAS, otherwise returns default address space.

Definition at line 565 of file ParsedAttr.h.

◆ asSYCLLangAS()

LangAS clang::ParsedAttr::asSYCLLangAS ( ) const
inline

If this is an OpenCL address space attribute, returns its SYCL representation in LangAS, otherwise returns default address space.

Definition at line 588 of file ParsedAttr.h.

References getKind().

◆ checkAtLeastNumArgs()

bool ParsedAttr::checkAtLeastNumArgs ( class Sema S,
unsigned  Num 
) const

◆ checkAtMostNumArgs()

bool ParsedAttr::checkAtMostNumArgs ( class Sema S,
unsigned  Num 
) const

Check if the attribute has at most as many args as Num.

May output an error. Returns false if a diagnostic is produced.

Definition at line 308 of file ParsedAttr.cpp.

References checkAttributeNumArgsImpl().

Referenced by checkCommonAttributeFeatures(), handleAllocSizeAttr(), handleAMDGPUWavesPerEUAttr(), handleDeprecatedAttr(), handleExternalSourceSymbolAttr(), handleLaunchBoundsAttr(), and handleRISCVInterruptAttr().

◆ checkExactlyNumArgs()

bool ParsedAttr::checkExactlyNumArgs ( class Sema S,
unsigned  Num 
) const

◆ diagnoseAppertainsTo() [1/2]

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

◆ diagnoseAppertainsTo() [2/2]

bool ParsedAttr::diagnoseAppertainsTo ( class Sema S,
const Stmt St 
) const

Definition at line 166 of file ParsedAttr.cpp.

References clang::ParsedAttrInfo::diagAppertainsToStmt(), and getInfo().

◆ diagnoseLangOpts()

bool ParsedAttr::diagnoseLangOpts ( class Sema S) const

◆ diagnoseMutualExclusion() [1/2]

bool ParsedAttr::diagnoseMutualExclusion ( class Sema S,
const Decl D 
) const

◆ diagnoseMutualExclusion() [2/2]

bool clang::ParsedAttr::diagnoseMutualExclusion ( class Sema S,
const Stmt St 
) const
inline

Definition at line 532 of file ParsedAttr.h.

◆ existsInTarget()

bool ParsedAttr::existsInTarget ( const TargetInfo Target) const

◆ getArg()

ArgsUnion clang::ParsedAttr::getArg ( unsigned  Arg) const
inline

getArg - Return the specified argument.

Definition at line 385 of file ParsedAttr.h.

Referenced by handleDiagnoseAsBuiltinAttr().

◆ getArgAsExpr()

Expr * clang::ParsedAttr::getArgAsExpr ( unsigned  Arg) const
inline

Definition at line 394 of file ParsedAttr.h.

Referenced by clang::Sema::ActOnCXXAssumeAttr(), checkAttrArgsAreCapabilityObjs(), checkFunctionConditionAttr(), clang::Sema::CheckRegparmAttr(), clang::Sema::checkStringLiteralArgumentAttr(), checkTryLockFunAttrCommon(), handleAlignedAttr(), handleAlignValueAttr(), handleAllocAlignAttr(), handleAllocSizeAttr(), handleAMDGPUFlatWorkGroupSizeAttr(), handleAMDGPUMaxNumWorkGroupsAttr(), handleAMDGPUNumSGPRAttr(), handleAMDGPUNumVGPRAttr(), handleAMDGPUWavesPerEUAttr(), handleAnnotateAttr(), HandleAnnotateTypeAttr(), handleArgumentWithTypeTagAttr(), handleAssumeAlignedAttr(), handleCallbackAttr(), handleCleanupAttr(), handleCodeAlignAttr(), handleConstructorAttr(), handleDeprecatedAttr(), handleDestructorAttr(), handleDiagnoseAsBuiltinAttr(), handleDiagnoseIfAttr(), handleExclusiveTrylockFunctionAttr(), handleExternalSourceSymbolAttr(), handleFormatArgAttr(), handleFormatAttr(), handleHLSLNumThreadsAttr(), handleInitPriorityAttr(), handleLaunchBoundsAttr(), handleLayoutVersion(), handleLoopHintAttr(), handleM68kInterruptAttr(), handleMinVectorWidthAttr(), handleMSP430InterruptAttr(), handleNonNullAttr(), handleOpenCLUnrollHint(), handleOwnershipAttr(), handlePassObjectSizeAttr(), handlePatchableFunctionEntryAttr(), handleSentinelAttr(), handleSharedTrylockFunctionAttr(), handleSubGroupSize(), handleSwiftAsyncAttr(), handleSwiftAsyncError(), handleTargetClonesAttr(), handleTryAcquireCapabilityAttr(), handleWorkGroupSize(), handleXRayLogArgsAttr(), and MustDelayAttributeArguments().

◆ getArgAsIdent()

IdentifierLoc * clang::ParsedAttr::getArgAsIdent ( unsigned  Arg) const
inline

◆ getAvailabilityDeprecated()

const AvailabilityChange & clang::ParsedAttr::getAvailabilityDeprecated ( ) const
inline

Definition at line 412 of file ParsedAttr.h.

Referenced by handleAvailabilityAttr().

◆ getAvailabilityIntroduced()

const AvailabilityChange & clang::ParsedAttr::getAvailabilityIntroduced ( ) const
inline

Definition at line 406 of file ParsedAttr.h.

Referenced by handleAvailabilityAttr().

◆ getAvailabilityObsoleted()

const AvailabilityChange & clang::ParsedAttr::getAvailabilityObsoleted ( ) const
inline

Definition at line 418 of file ParsedAttr.h.

Referenced by handleAvailabilityAttr().

◆ getEllipsisLoc()

SourceLocation clang::ParsedAttr::getEllipsisLoc ( ) const
inline

Definition at line 379 of file ParsedAttr.h.

Referenced by handleAlignedAttr().

◆ getInfo()

const ParsedAttrInfo & clang::ParsedAttr::getInfo ( ) const
inline

◆ getKind()

AttributeCommonInfo::Kind clang::ParsedAttr::getKind ( ) const
inline

◆ getLayoutCompatible()

bool clang::ParsedAttr::getLayoutCompatible ( ) const
inline

Definition at line 454 of file ParsedAttr.h.

Referenced by handleTypeTagForDatatypeAttr().

◆ getMacroExpansionLoc()

SourceLocation clang::ParsedAttr::getMacroExpansionLoc ( ) const
inline

Definition at line 498 of file ParsedAttr.h.

◆ getMacroIdentifier()

IdentifierInfo * clang::ParsedAttr::getMacroIdentifier ( ) const
inline

Return the macro identifier if this attribute was declared in a macro.

nullptr is returned if it was not declared in a macro.

Definition at line 496 of file ParsedAttr.h.

◆ getMatchingCType()

const ParsedType & clang::ParsedAttr::getMatchingCType ( ) const
inline

Definition at line 448 of file ParsedAttr.h.

Referenced by handleTypeTagForDatatypeAttr().

◆ getMatchRules()

void ParsedAttr::getMatchRules ( const LangOptions LangOpts,
SmallVectorImpl< std::pair< attr::SubjectMatchRule, bool > > &  MatchRules 
) const

◆ getMaxArgs()

unsigned ParsedAttr::getMaxArgs ( ) const

Definition at line 150 of file ParsedAttr.cpp.

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

Referenced by checkCommonAttributeFeatures().

◆ getMessageExpr()

const Expr * clang::ParsedAttr::getMessageExpr ( ) const
inline

Definition at line 436 of file ParsedAttr.h.

Referenced by handleAvailabilityAttr().

◆ getMinArgs()

unsigned ParsedAttr::getMinArgs ( ) const

Definition at line 148 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::NumArgs.

Referenced by checkCommonAttributeFeatures(), and getMaxArgs().

◆ getMustBeNull()

bool clang::ParsedAttr::getMustBeNull ( ) const
inline

Definition at line 460 of file ParsedAttr.h.

Referenced by handleTypeTagForDatatypeAttr().

◆ getNumArgMembers()

unsigned ParsedAttr::getNumArgMembers ( ) const

Definition at line 154 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::NumArgMembers.

Referenced by MustDelayAttributeArguments().

◆ getNumArgs()

unsigned clang::ParsedAttr::getNumArgs ( ) const
inline

◆ getProcessingCache()

unsigned clang::ParsedAttr::getProcessingCache ( ) const
inline

Definition at line 360 of file ParsedAttr.h.

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

◆ getPropertyDataGetter()

IdentifierInfo * clang::ParsedAttr::getPropertyDataGetter ( ) const
inline

Definition at line 471 of file ParsedAttr.h.

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

◆ getPropertyDataSetter()

IdentifierInfo * clang::ParsedAttr::getPropertyDataSetter ( ) const
inline

Definition at line 477 of file ParsedAttr.h.

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

◆ getReplacementExpr()

const Expr * clang::ParsedAttr::getReplacementExpr ( ) const
inline

Definition at line 442 of file ParsedAttr.h.

Referenced by handleAvailabilityAttr().

◆ getSemanticSpelling()

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 262 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::spellingIndexToSemanticSpelling().

Referenced by handleHLSLParamModifierAttr(), handleMSInheritanceAttr(), handleOpenCLAccessAttr(), and handleStandardNoReturnAttr().

◆ getStrictLoc()

SourceLocation clang::ParsedAttr::getStrictLoc ( ) const
inline

Definition at line 424 of file ParsedAttr.h.

Referenced by handleAvailabilityAttr().

◆ getTypeArg()

const ParsedType & clang::ParsedAttr::getTypeArg ( ) const
inline

◆ getUnavailableLoc()

SourceLocation clang::ParsedAttr::getUnavailableLoc ( ) const
inline

Definition at line 430 of file ParsedAttr.h.

Referenced by handleAvailabilityAttr().

◆ handleAttrWithDelayedArgs()

void ParsedAttr::handleAttrWithDelayedArgs ( Sema S,
Decl D 
) const

Definition at line 278 of file ParsedAttr.cpp.

References handleAttrWithDelayedArgs().

Referenced by handleAttrWithDelayedArgs(), and ProcessDeclAttribute().

◆ hasCustomParsing()

bool ParsedAttr::hasCustomParsing ( ) const

Definition at line 158 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::HasCustomParsing.

Referenced by checkCommonAttributeFeatures().

◆ hasMacroIdentifier()

bool clang::ParsedAttr::hasMacroIdentifier ( ) const
inline

Returns true if this attribute was declared in a macro.

Definition at line 492 of file ParsedAttr.h.

◆ hasParsedType()

bool clang::ParsedAttr::hasParsedType ( ) const
inline

◆ hasProcessingCache()

bool clang::ParsedAttr::hasProcessingCache ( ) const
inline

Definition at line 358 of file ParsedAttr.h.

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

◆ hasVariadicArg()

bool ParsedAttr::hasVariadicArg ( ) const

◆ isArgExpr()

bool clang::ParsedAttr::isArgExpr ( unsigned  Arg) const
inline

◆ isArgIdent()

bool clang::ParsedAttr::isArgIdent ( unsigned  Arg) const
inline

◆ isDeclspecPropertyAttribute()

bool clang::ParsedAttr::isDeclspecPropertyAttribute ( ) const
inline

Is this the Microsoft __declspec(property) attribute?

Definition at line 351 of file ParsedAttr.h.

Referenced by clang::ParsedAttributesView::getMSPropertyAttr().

◆ isInvalid()

bool clang::ParsedAttr::isInvalid ( ) const
inline

◆ isKnownToGCC()

bool ParsedAttr::isKnownToGCC ( ) const

Definition at line 216 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::IsKnownToGCC.

◆ isPackExpansion()

bool clang::ParsedAttr::isPackExpansion ( ) const
inline

Definition at line 378 of file ParsedAttr.h.

References clang::SourceLocation::isValid().

Referenced by handleAlignedAttr().

◆ isParamExpr()

bool ParsedAttr::isParamExpr ( size_t  N) const

Definition at line 274 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::isParamExpr().

Referenced by MustDelayAttributeArguments().

◆ isPragmaClangAttribute()

bool clang::ParsedAttr::isPragmaClangAttribute ( ) const
inline

True if the attribute is specified using '#pragma clang attribute'.

Definition at line 374 of file ParsedAttr.h.

Referenced by handleAvailabilityAttr().

◆ isStmtAttr()

bool ParsedAttr::isStmtAttr ( ) const

Definition at line 199 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::IsStmt.

Referenced by ProcessDeclAttribute().

◆ isSupportedByPragmaAttribute()

bool ParsedAttr::isSupportedByPragmaAttribute ( ) const

◆ isTargetSpecificAttr()

bool ParsedAttr::isTargetSpecificAttr ( ) const

Definition at line 193 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::IsTargetSpecific.

◆ isTypeAttr()

bool ParsedAttr::isTypeAttr ( ) const

Definition at line 197 of file ParsedAttr.cpp.

References getInfo(), and clang::ParsedAttrInfo::IsType.

Referenced by ProcessDeclAttribute().

◆ isUsedAsTypeAttr()

bool clang::ParsedAttr::isUsedAsTypeAttr ( ) const
inline

◆ operator delete()

void clang::ParsedAttr::operator delete ( void *  )
delete

◆ operator=() [1/2]

ParsedAttr & clang::ParsedAttr::operator= ( const ParsedAttr )
delete

◆ operator=() [2/2]

ParsedAttr & clang::ParsedAttr::operator= ( ParsedAttr &&  )
delete

◆ setInvalid()

void clang::ParsedAttr::setInvalid ( bool  b = true) const
inline

◆ setIsPragmaClangAttribute()

void clang::ParsedAttr::setIsPragmaClangAttribute ( )
inline

Definition at line 376 of file ParsedAttr.h.

◆ setMacroIdentifier()

void clang::ParsedAttr::setMacroIdentifier ( IdentifierInfo MacroName,
SourceLocation  Loc 
)
inline

Set the macro identifier info object that this parsed attribute was declared in if it was declared in a macro.

Also set the expansion location of the macro.

Definition at line 486 of file ParsedAttr.h.

◆ setProcessingCache()

void clang::ParsedAttr::setProcessingCache ( unsigned  value) const
inline

Definition at line 365 of file ParsedAttr.h.

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

◆ setUsedAsTypeAttr()

void clang::ParsedAttr::setUsedAsTypeAttr ( bool  Used = true)
inline

Definition at line 371 of file ParsedAttr.h.

References Used.

Referenced by createSimpleAttr().

◆ slidesFromDeclToDeclSpecLegacyBehavior()

bool ParsedAttr::slidesFromDeclToDeclSpecLegacyBehavior ( ) const

Returns whether a [[]] attribute, if specified ahead of a declaration, should be applied to the decl-specifier-seq instead (i.e.

whether it "slides" to the decl-specifier-seq).

By the standard, attributes specified before the declaration always appertain to the declaration, but historically we have allowed some of these attributes to slide to the decl-specifier-seq, so we need to keep supporting this behavior.

This may only be called if isStandardAttributeSyntax() returns true.

Definition at line 222 of file ParsedAttr.cpp.

References clang::AttributeCommonInfo::getParsedKind(), clang::AttributeCommonInfo::isRegularKeywordAttribute(), and clang::AttributeCommonInfo::isStandardAttributeSyntax().

Referenced by ProcessDeclAttribute().

Friends And Related Function Documentation

◆ AttributeFactory

friend class AttributeFactory
friend

Definition at line 212 of file ParsedAttr.h.

◆ AttributePool

friend class AttributePool
friend

Definition at line 213 of file ParsedAttr.h.


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