clang API Documentation
One instance of this struct is used for each type in a declarator that is parsed. More...
#include <DeclSpec.h>
Classes | |
struct | ArrayTypeInfo |
struct | BlockPointerTypeInfo |
struct | FunctionTypeInfo |
struct | MemberPointerTypeInfo |
struct | ParamInfo |
struct | PointerTypeInfo |
struct | ReferenceTypeInfo |
struct | TypeAndRange |
struct | TypeInfoCommon |
Public Types | |
enum | { Pointer, Reference, Array, Function, BlockPointer, MemberPointer, Paren } |
Public Member Functions | |
void | destroy () |
const AttributeList * | getAttrs () const |
If there are attributes applied to this declaratorchunk, return them. | |
AttributeList *& | getAttrListRef () |
bool | isParen () const |
Static Public Member Functions | |
static DeclaratorChunk | getPointer (unsigned TypeQuals, SourceLocation Loc, SourceLocation ConstQualLoc, SourceLocation VolatileQualLoc, SourceLocation RestrictQualLoc) |
Return a DeclaratorChunk for a pointer. | |
static DeclaratorChunk | getReference (unsigned TypeQuals, SourceLocation Loc, bool lvalue) |
Return a DeclaratorChunk for a reference. | |
static DeclaratorChunk | getArray (unsigned TypeQuals, bool isStatic, bool isStar, Expr *NumElts, SourceLocation LBLoc, SourceLocation RBLoc) |
Return a DeclaratorChunk for an array. | |
static DeclaratorChunk | getFunction (bool HasProto, bool IsAmbiguous, SourceLocation LParenLoc, ParamInfo *Params, unsigned NumParams, SourceLocation EllipsisLoc, SourceLocation RParenLoc, unsigned TypeQuals, bool RefQualifierIsLvalueRef, SourceLocation RefQualifierLoc, SourceLocation ConstQualifierLoc, SourceLocation VolatileQualifierLoc, SourceLocation RestrictQualifierLoc, SourceLocation MutableLoc, ExceptionSpecificationType ESpecType, SourceLocation ESpecLoc, ParsedType *Exceptions, SourceRange *ExceptionRanges, unsigned NumExceptions, Expr *NoexceptExpr, CachedTokens *ExceptionSpecTokens, SourceLocation LocalRangeBegin, SourceLocation LocalRangeEnd, Declarator &TheDeclarator, TypeResult TrailingReturnType=TypeResult()) |
static DeclaratorChunk | getBlockPointer (unsigned TypeQuals, SourceLocation Loc) |
Return a DeclaratorChunk for a block. | |
static DeclaratorChunk | getMemberPointer (const CXXScopeSpec &SS, unsigned TypeQuals, SourceLocation Loc) |
static DeclaratorChunk | getParen (SourceLocation LParenLoc, SourceLocation RParenLoc) |
Return a DeclaratorChunk for a paren. | |
Public Attributes | |
enum clang::DeclaratorChunk:: { ... } | Kind |
SourceLocation | Loc |
Loc - The place where this type was defined. | |
SourceLocation | EndLoc |
EndLoc - If valid, the place where this chunck ends. | |
union { | |
TypeInfoCommon Common | |
PointerTypeInfo Ptr | |
ReferenceTypeInfo Ref | |
ArrayTypeInfo Arr | |
FunctionTypeInfo Fun | |
BlockPointerTypeInfo Cls | |
MemberPointerTypeInfo Mem | |
}; |
One instance of this struct is used for each type in a declarator that is parsed.
This is intended to be a small value object.
Definition at line 1063 of file DeclSpec.h.
anonymous enum |
Definition at line 1064 of file DeclSpec.h.
void clang::DeclaratorChunk::destroy | ( | ) | [inline] |
Definition at line 1386 of file DeclSpec.h.
References Arr, Array, BlockPointer, Cls, clang::DeclaratorChunk::PointerTypeInfo::destroy(), clang::DeclaratorChunk::ReferenceTypeInfo::destroy(), clang::DeclaratorChunk::ArrayTypeInfo::destroy(), clang::DeclaratorChunk::FunctionTypeInfo::destroy(), clang::DeclaratorChunk::BlockPointerTypeInfo::destroy(), clang::DeclaratorChunk::MemberPointerTypeInfo::destroy(), Fun, Function, Mem, MemberPointer, Paren, Pointer, Ptr, Ref, and Reference.
static DeclaratorChunk clang::DeclaratorChunk::getArray | ( | unsigned | TypeQuals, |
bool | isStatic, | ||
bool | isStar, | ||
Expr * | NumElts, | ||
SourceLocation | LBLoc, | ||
SourceLocation | RBLoc | ||
) | [inline, static] |
Return a DeclaratorChunk for an array.
Definition at line 1437 of file DeclSpec.h.
References Arr, Array, clang::DeclaratorChunk::TypeInfoCommon::AttrList, EndLoc, clang::DeclaratorChunk::ArrayTypeInfo::hasStatic, clang::DeclaratorChunk::ArrayTypeInfo::isStar, Kind, Loc, clang::DeclaratorChunk::ArrayTypeInfo::NumElts, and clang::DeclaratorChunk::ArrayTypeInfo::TypeQuals.
AttributeList*& clang::DeclaratorChunk::getAttrListRef | ( | ) | [inline] |
Definition at line 1404 of file DeclSpec.h.
References clang::DeclaratorChunk::TypeInfoCommon::AttrList, and Common.
Referenced by distributeFunctionTypeAttr(), distributeFunctionTypeAttrToInnermost(), distributeObjCPointerTypeAttr(), distributeObjCPointerTypeAttrFromDeclarator(), and transferARCOwnershipToDeclaratorChunk().
const AttributeList* clang::DeclaratorChunk::getAttrs | ( | ) | const [inline] |
If there are attributes applied to this declaratorchunk, return them.
Definition at line 1400 of file DeclSpec.h.
References clang::DeclaratorChunk::TypeInfoCommon::AttrList, and Common.
Referenced by clang::Sema::checkUnusedDeclAttributes(), GetFullTypeForDeclarator(), clang::Sema::GetTypeSourceInfoForDeclarator(), hasParsedAttr(), inferARCWriteback(), clang::Sema::ProcessDeclAttributes(), takeDeclAttributes(), and transferARCOwnershipToDeclaratorChunk().
static DeclaratorChunk clang::DeclaratorChunk::getBlockPointer | ( | unsigned | TypeQuals, |
SourceLocation | Loc | ||
) | [inline, static] |
Return a DeclaratorChunk for a block.
Definition at line 1481 of file DeclSpec.h.
References clang::DeclaratorChunk::TypeInfoCommon::AttrList, BlockPointer, Cls, Kind, Loc, and clang::DeclaratorChunk::BlockPointerTypeInfo::TypeQuals.
DeclaratorChunk DeclaratorChunk::getFunction | ( | bool | hasProto, |
bool | isAmbiguous, | ||
SourceLocation | LParenLoc, | ||
ParamInfo * | Params, | ||
unsigned | NumParams, | ||
SourceLocation | EllipsisLoc, | ||
SourceLocation | RParenLoc, | ||
unsigned | TypeQuals, | ||
bool | RefQualifierIsLvalueRef, | ||
SourceLocation | RefQualifierLoc, | ||
SourceLocation | ConstQualifierLoc, | ||
SourceLocation | VolatileQualifierLoc, | ||
SourceLocation | RestrictQualifierLoc, | ||
SourceLocation | MutableLoc, | ||
ExceptionSpecificationType | ESpecType, | ||
SourceLocation | ESpecLoc, | ||
ParsedType * | Exceptions, | ||
SourceRange * | ExceptionRanges, | ||
unsigned | NumExceptions, | ||
Expr * | NoexceptExpr, | ||
CachedTokens * | ExceptionSpecTokens, | ||
SourceLocation | LocalRangeBegin, | ||
SourceLocation | LocalRangeEnd, | ||
Declarator & | TheDeclarator, | ||
TypeResult | TrailingReturnType = TypeResult() |
||
) | [static] |
DeclaratorChunk::getFunction - Return a DeclaratorChunk for a function. "TheDeclarator" is the declarator that this will be added to.
Definition at line 162 of file DeclSpec.cpp.
References clang::DeclaratorChunk::TypeInfoCommon::AttrList, clang::DeclaratorChunk::FunctionTypeInfo::ConstQualifierLoc, clang::DeclaratorChunk::FunctionTypeInfo::DeleteParams, clang::DeclaratorChunk::FunctionTypeInfo::EllipsisLoc, EndLoc, clang::EST_ComputedNoexcept, clang::EST_Dynamic, clang::EST_Unparsed, clang::DeclaratorChunk::FunctionTypeInfo::Exceptions, clang::DeclaratorChunk::FunctionTypeInfo::ExceptionSpecLoc, clang::DeclaratorChunk::FunctionTypeInfo::ExceptionSpecTokens, clang::DeclaratorChunk::FunctionTypeInfo::ExceptionSpecType, Fun, Function, clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::SourceLocation::getRawEncoding(), clang::DeclaratorChunk::FunctionTypeInfo::hasPrototype, clang::DeclaratorChunk::FunctionTypeInfo::HasTrailingReturnType, clang::DeclaratorChunk::FunctionTypeInfo::isAmbiguous, clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), clang::ActionResult< PtrTy, CompressInvalid >::isUsable(), clang::SourceLocation::isValid(), clang::DeclaratorChunk::FunctionTypeInfo::isVariadic, Kind, Loc, clang::DeclaratorChunk::FunctionTypeInfo::LParenLoc, clang::DeclaratorChunk::FunctionTypeInfo::MutableLoc, clang::DeclaratorChunk::FunctionTypeInfo::NoexceptExpr, clang::DeclaratorChunk::FunctionTypeInfo::NumExceptions, clang::DeclaratorChunk::FunctionTypeInfo::NumParams, clang::DeclaratorChunk::FunctionTypeInfo::Params, clang::DeclaratorChunk::TypeAndRange::Range, clang::DeclaratorChunk::FunctionTypeInfo::RefQualifierIsLValueRef, clang::DeclaratorChunk::FunctionTypeInfo::RefQualifierLoc, clang::DeclaratorChunk::FunctionTypeInfo::RestrictQualifierLoc, clang::DeclaratorChunk::FunctionTypeInfo::RParenLoc, clang::DeclSpec::TQ_atomic, clang::DeclaratorChunk::FunctionTypeInfo::TrailingReturnType, clang::DeclaratorChunk::TypeAndRange::Ty, clang::DeclaratorChunk::FunctionTypeInfo::TypeQuals, and clang::DeclaratorChunk::FunctionTypeInfo::VolatileQualifierLoc.
Referenced by clang::Sema::ImplicitlyDefineFunction(), and maybeSynthesizeBlockSignature().
static DeclaratorChunk clang::DeclaratorChunk::getMemberPointer | ( | const CXXScopeSpec & | SS, |
unsigned | TypeQuals, | ||
SourceLocation | Loc | ||
) | [inline, static] |
Definition at line 1491 of file DeclSpec.h.
References clang::DeclaratorChunk::TypeInfoCommon::AttrList, Kind, Loc, clang::DeclaratorChunk::MemberPointerTypeInfo::Mem, Mem, MemberPointer, clang::DeclaratorChunk::MemberPointerTypeInfo::ScopeMem, and clang::DeclaratorChunk::MemberPointerTypeInfo::TypeQuals.
static DeclaratorChunk clang::DeclaratorChunk::getParen | ( | SourceLocation | LParenLoc, |
SourceLocation | RParenLoc | ||
) | [inline, static] |
Return a DeclaratorChunk for a paren.
Definition at line 1504 of file DeclSpec.h.
References clang::DeclaratorChunk::TypeInfoCommon::AttrList, Common, EndLoc, Kind, Loc, and Paren.
static DeclaratorChunk clang::DeclaratorChunk::getPointer | ( | unsigned | TypeQuals, |
SourceLocation | Loc, | ||
SourceLocation | ConstQualLoc, | ||
SourceLocation | VolatileQualLoc, | ||
SourceLocation | RestrictQualLoc | ||
) | [inline, static] |
Return a DeclaratorChunk for a pointer.
Definition at line 1409 of file DeclSpec.h.
References clang::DeclaratorChunk::TypeInfoCommon::AttrList, clang::DeclaratorChunk::PointerTypeInfo::ConstQualLoc, clang::SourceLocation::getRawEncoding(), Kind, Loc, Pointer, Ptr, clang::DeclaratorChunk::PointerTypeInfo::RestrictQualLoc, clang::DeclaratorChunk::PointerTypeInfo::TypeQuals, and clang::DeclaratorChunk::PointerTypeInfo::VolatileQualLoc.
static DeclaratorChunk clang::DeclaratorChunk::getReference | ( | unsigned | TypeQuals, |
SourceLocation | Loc, | ||
bool | lvalue | ||
) | [inline, static] |
Return a DeclaratorChunk for a reference.
Definition at line 1425 of file DeclSpec.h.
References clang::DeclaratorChunk::TypeInfoCommon::AttrList, clang::DeclaratorChunk::ReferenceTypeInfo::HasRestrict, Kind, Loc, clang::DeclaratorChunk::ReferenceTypeInfo::LValueRef, Ref, Reference, and clang::DeclSpec::TQ_restrict.
Referenced by clang::Sema::ActOnCXXForRangeIdentifier().
bool clang::DeclaratorChunk::isParen | ( | ) | const [inline] |
Definition at line 1514 of file DeclSpec.h.
References Paren.
union { ... } |
Definition at line 1380 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXNew(), clang::Sema::containsUnexpandedParameterPacks(), destroy(), getArray(), GetFullTypeForDeclarator(), and clang::Declarator::isArrayOfUnknownBound().
Definition at line 1382 of file DeclSpec.h.
Referenced by destroy(), getBlockPointer(), and GetFullTypeForDeclarator().
Definition at line 1377 of file DeclSpec.h.
Referenced by getAttrListRef(), getAttrs(), and getParen().
EndLoc - If valid, the place where this chunck ends.
Definition at line 1071 of file DeclSpec.h.
Referenced by getArray(), GetFullTypeForDeclarator(), getFunction(), getParen(), and warnAboutAmbiguousFunction().
Definition at line 1381 of file DeclSpec.h.
Referenced by clang::Sema::CheckExtraCXXDefaultArguments(), clang::Sema::containsUnexpandedParameterPacks(), destroy(), diagnoseRedundantReturnTypeQualifiers(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), getFunction(), and warnAboutAmbiguousFunction().
enum { ... } clang::DeclaratorChunk::Kind |
Referenced by clang::Sema::ActOnCXXNew(), clang::Sema::CheckExtraCXXDefaultArguments(), clang::Sema::containsUnexpandedParameterPacks(), diagnoseRedundantReturnTypeQualifiers(), distributeFunctionTypeAttr(), distributeFunctionTypeAttrToInnermost(), distributeObjCPointerTypeAttr(), distributeObjCPointerTypeAttrFromDeclarator(), fillAtomicQualLoc(), getArray(), getBlockPointer(), getCCForDeclaratorChunk(), GetDeclSpecTypeForDeclarator(), GetFullTypeForDeclarator(), getFunction(), getMemberPointer(), getParen(), getPointer(), getReference(), inferARCWriteback(), clang::Declarator::isArrayOfUnknownBound(), isOmittedBlockReturnType(), maybeMovePastReturnType(), RebuildDeclaratorInCurrentInstantiation(), and transferARCOwnership().
Loc - The place where this type was defined.
Definition at line 1069 of file DeclSpec.h.
Referenced by clang::Sema::ActOnCXXNew(), getArray(), getBlockPointer(), GetFullTypeForDeclarator(), getFunction(), getMemberPointer(), getParen(), getPointer(), getReference(), and warnAboutAmbiguousFunction().
Definition at line 1383 of file DeclSpec.h.
Referenced by clang::Sema::containsUnexpandedParameterPacks(), destroy(), GetFullTypeForDeclarator(), getMemberPointer(), and RebuildDeclaratorInCurrentInstantiation().
Definition at line 1378 of file DeclSpec.h.
Referenced by destroy(), diagnoseRedundantReturnTypeQualifiers(), fillAtomicQualLoc(), GetFullTypeForDeclarator(), and getPointer().
Definition at line 1379 of file DeclSpec.h.
Referenced by destroy(), GetFullTypeForDeclarator(), and getReference().