clang 24.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
AttributePool & operator= (const AttributePool &)=delete
 ~AttributePool ()
 AttributePool (AttributePool &&pool)=default
 Move the given pool's allocations to this pool.
AttributePool & operator= (AttributePool &&pool)=delete
AttributeFactory & getFactory () 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.
ParsedAttr * create (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, ArgsUnion *args, unsigned numArgs, ParsedAttr::Form form, SourceLocation ellipsisLoc=SourceLocation())
ParsedAttr * 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)
ParsedAttr * create (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, IdentifierLoc *Param1, IdentifierLoc *Param2, IdentifierLoc *Param3, ParsedAttr::Form form)
ParsedAttr * createTypeTagForDatatype (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, IdentifierLoc *argumentKind, ParsedType matchingCType, bool layoutCompatible, bool mustBeNull, ParsedAttr::Form form)
ParsedAttr * createTypeAttribute (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, ParsedType typeArg, ParsedAttr::Form formUsed, SourceLocation ellipsisLoc)
ParsedAttr * createPropertyAttribute (IdentifierInfo *attrName, SourceRange attrRange, AttributeScopeInfo scope, IdentifierInfo *getterId, IdentifierInfo *setterId, ParsedAttr::Form formUsed)

Friends

class AttributeFactory
class ParsedAttributes

Detailed Description

Definition at line 690 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 715 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 722 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 733 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 748 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 761 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 777 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 813 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 799 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 731 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 739 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 691 of file ParsedAttr.h.

References AttributeFactory.

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

◆ ParsedAttributes

friend class ParsedAttributes
friend

Definition at line 692 of file ParsedAttr.h.

References AttributeFactory, and ParsedAttributes.

Referenced by ParsedAttributes.


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