clang 22.0.0git
clang::AttributePool Class Reference

#include "clang/Sema/ParsedAttr.h"

Public Member Functions

 AttributePool (AttributeFactory &factory)
 Create a new pool for a factory.
 AttributePool (const AttributePool &)=delete
AttributePooloperator= (const AttributePool &)=delete
 ~AttributePool ()
 AttributePool (AttributePool &&pool)=default
 Move the given pool's allocations to this pool.
AttributePooloperator= (AttributePool &&pool)=delete
AttributeFactorygetFactory () const
void clear ()
void takeAllFrom (AttributePool &pool)
 Take the given pool's allocations and add them to this pool.
void takeFrom (ParsedAttributesView &List, AttributePool &Pool)
 Removes the attributes from List, which are owned by Pool, and adds them at the end of this AttributePool.
ParsedAttrcreate (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, ArgsUnion *args, unsigned numArgs, ParsedAttr::Form form, SourceLocation ellipsisLoc=SourceLocation())
ParsedAttrcreate (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, IdentifierLoc *Param, const AvailabilityChange &introduced, const AvailabilityChange &deprecated, const AvailabilityChange &obsoleted, SourceLocation unavailable, const Expr *MessageExpr, ParsedAttr::Form form, SourceLocation strict, const Expr *ReplacementExpr, IdentifierLoc *EnvironmentLoc)
ParsedAttrcreate (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, IdentifierLoc *Param1, IdentifierLoc *Param2, IdentifierLoc *Param3, ParsedAttr::Form form)
ParsedAttrcreateTypeTagForDatatype (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, IdentifierLoc *argumentKind, ParsedType matchingCType, bool layoutCompatible, bool mustBeNull, ParsedAttr::Form form)
ParsedAttrcreateTypeAttribute (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, ParsedType typeArg, ParsedAttr::Form formUsed, SourceLocation ellipsisLoc)
ParsedAttrcreatePropertyAttribute (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, IdentifierInfo *getterId, IdentifierInfo *setterId, ParsedAttr::Form formUsed)

Friends

class AttributeFactory
class ParsedAttributes

Detailed Description

Definition at line 677 of file ParsedAttr.h.

Constructor & Destructor Documentation

◆ AttributePool() [1/3]

clang::AttributePool::AttributePool ( AttributeFactory & factory)
inline

Create a new pool for a factory.

Definition at line 702 of file ParsedAttr.h.

References AttributeFactory.

Referenced by AttributePool(), AttributePool(), operator=(), operator=(), takeAllFrom(), and takeFrom().

◆ AttributePool() [2/3]

clang::AttributePool::AttributePool ( const AttributePool & )
delete

References AttributePool().

◆ ~AttributePool()

clang::AttributePool::~AttributePool ( )
inline

Definition at line 709 of file ParsedAttr.h.

◆ AttributePool() [3/3]

clang::AttributePool::AttributePool ( AttributePool && pool)
default

Move the given pool's allocations to this pool.

References AttributePool().

Member Function Documentation

◆ clear()

void clang::AttributePool::clear ( )
inline

Definition at line 720 of file ParsedAttr.h.

◆ create() [1/3]

ParsedAttr * clang::AttributePool::create ( IdentifierInfo * attrName,
SourceRange attrRange,
AttributeScopeInfo scope,
ArgsUnion * args,
unsigned numArgs,
ParsedAttr::Form form,
SourceLocation ellipsisLoc = SourceLocation() )
inline

Definition at line 735 of file ParsedAttr.h.

Referenced by transferARCOwnershipToDeclaratorChunk().

◆ create() [2/3]

ParsedAttr * clang::AttributePool::create ( IdentifierInfo * attrName,
SourceRange attrRange,
AttributeScopeInfo scope,
IdentifierLoc * Param,
const AvailabilityChange & introduced,
const AvailabilityChange & deprecated,
const AvailabilityChange & obsoleted,
SourceLocation unavailable,
const Expr * MessageExpr,
ParsedAttr::Form form,
SourceLocation strict,
const Expr * ReplacementExpr,
IdentifierLoc * EnvironmentLoc )
inline

Definition at line 748 of file ParsedAttr.h.

References clang::AttributeFactory::AvailabilityAllocSize.

◆ create() [3/3]

ParsedAttr * clang::AttributePool::create ( IdentifierInfo * attrName,
SourceRange attrRange,
AttributeScopeInfo scope,
IdentifierLoc * Param1,
IdentifierLoc * Param2,
IdentifierLoc * Param3,
ParsedAttr::Form form )
inline

Definition at line 764 of file ParsedAttr.h.

◆ createPropertyAttribute()

ParsedAttr * clang::AttributePool::createPropertyAttribute ( IdentifierInfo * attrName,
SourceRange attrRange,
AttributeScopeInfo scope,
IdentifierInfo * getterId,
IdentifierInfo * setterId,
ParsedAttr::Form formUsed )
inline

Definition at line 800 of file ParsedAttr.h.

References clang::AttributeFactory::PropertyAllocSize.

◆ createTypeAttribute()

ParsedAttr * clang::AttributePool::createTypeAttribute ( IdentifierInfo * attrName,
SourceRange attrRange,
AttributeScopeInfo scope,
ParsedType typeArg,
ParsedAttr::Form formUsed,
SourceLocation ellipsisLoc )
inline

Definition at line 786 of file ParsedAttr.h.

◆ createTypeTagForDatatype()

ParsedAttr * clang::AttributePool::createTypeTagForDatatype ( IdentifierInfo * attrName,
SourceRange attrRange,
AttributeScopeInfo scope,
IdentifierLoc * argumentKind,
ParsedType matchingCType,
bool layoutCompatible,
bool mustBeNull,
ParsedAttr::Form form )
inline

◆ getFactory()

AttributeFactory & clang::AttributePool::getFactory ( ) const
inline

Definition at line 718 of file ParsedAttr.h.

References AttributeFactory.

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

◆ operator=() [1/2]

AttributePool & clang::AttributePool::operator= ( AttributePool && pool)
delete

References AttributePool().

◆ operator=() [2/2]

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

References AttributePool().

◆ takeAllFrom()

void clang::AttributePool::takeAllFrom ( AttributePool & pool)
inline

Take the given pool's allocations and add them to this pool.

Definition at line 726 of file ParsedAttr.h.

References AttributePool().

Referenced by clang::Declarator::AddTypeInfo(), clang::DeclaratorChunk::getFunction(), and takeDeclAttributes().

◆ takeFrom()

void AttributePool::takeFrom ( ParsedAttributesView & List,
AttributePool & Pool )

Removes the attributes from List, which are owned by Pool, and adds them at the end of this AttributePool.

Definition at line 92 of file ParsedAttr.cpp.

References AttributePool().

Referenced by clang::Declarator::AddTypeInfo().

◆ AttributeFactory

friend class AttributeFactory
friend

Definition at line 678 of file ParsedAttr.h.

References AttributeFactory.

Referenced by AttributeFactory, AttributePool(), getFactory(), and ParsedAttributes.

◆ ParsedAttributes

friend class ParsedAttributes
friend

Definition at line 679 of file ParsedAttr.h.

References AttributeFactory, and ParsedAttributes.

Referenced by ParsedAttributes.


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