clang 22.0.0git
clang::DeclaratorChunk Struct Reference

One instance of this struct is used for each type in a declarator that is parsed. More...

#include "clang/Sema/DeclSpec.h"

Classes

struct  ArrayTypeInfo
struct  BlockPointerTypeInfo
struct  FunctionTypeInfo
struct  MemberPointerTypeInfo
struct  ParamInfo
 ParamInfo - An array of paraminfo objects is allocated whenever a function declarator is parsed. More...
struct  PipeTypeInfo
struct  PointerTypeInfo
struct  ReferenceTypeInfo
struct  TypeAndRange

Public Types

enum  {
  Pointer , Reference , Array , Function ,
  BlockPointer , MemberPointer , Paren , Pipe
}

Public Member Functions

 DeclaratorChunk ()
SourceRange getSourceRange () const
void destroy ()
const ParsedAttributesViewgetAttrs () const
 If there are attributes applied to this declaratorchunk, return them.
ParsedAttributesViewgetAttrs ()
bool isParen () const

Static Public Member Functions

static DeclaratorChunk getPointer (unsigned TypeQuals, SourceLocation Loc, SourceLocation ConstQualLoc, SourceLocation VolatileQualLoc, SourceLocation RestrictQualLoc, SourceLocation AtomicQualLoc, SourceLocation UnalignedQualLoc)
 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, bool RefQualifierIsLvalueRef, SourceLocation RefQualifierLoc, SourceLocation MutableLoc, ExceptionSpecificationType ESpecType, SourceRange ESpecRange, ParsedType *Exceptions, SourceRange *ExceptionRanges, unsigned NumExceptions, Expr *NoexceptExpr, CachedTokens *ExceptionSpecTokens, ArrayRef< NamedDecl * > DeclsInPrototype, SourceLocation LocalRangeBegin, SourceLocation LocalRangeEnd, Declarator &TheDeclarator, TypeResult TrailingReturnType=TypeResult(), SourceLocation TrailingReturnTypeLoc=SourceLocation(), DeclSpec *MethodQualifiers=nullptr)
 DeclaratorChunk::getFunction - Return a DeclaratorChunk for a function.
static DeclaratorChunk getBlockPointer (unsigned TypeQuals, SourceLocation Loc)
 Return a DeclaratorChunk for a block.
static DeclaratorChunk getPipe (unsigned TypeQuals, SourceLocation Loc)
 Return a DeclaratorChunk for a block.
static DeclaratorChunk getMemberPointer (const CXXScopeSpec &SS, unsigned TypeQuals, SourceLocation StarLoc, SourceLocation EndLoc)
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.
ParsedAttributesView AttrList
union { 
   PointerTypeInfo   Ptr 
   ReferenceTypeInfo   Ref 
   ArrayTypeInfo   Arr 
   FunctionTypeInfo   Fun 
   BlockPointerTypeInfo   Cls 
   MemberPointerTypeInfo   Mem 
   PipeTypeInfo   PipeInfo 
}; 

Detailed Description

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 1221 of file DeclSpec.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
Pointer 
Reference 
Array 
Function 
BlockPointer 
MemberPointer 
Paren 
Pipe 

Definition at line 1224 of file DeclSpec.h.

Constructor & Destructor Documentation

◆ DeclaratorChunk()

clang::DeclaratorChunk::DeclaratorChunk ( )
inline

Member Function Documentation

◆ destroy()

void clang::DeclaratorChunk::destroy ( )
inline

Definition at line 1618 of file DeclSpec.h.

References Arr, Array, BlockPointer, Cls, Fun, Function, Kind, Mem, MemberPointer, Paren, Pipe, PipeInfo, Pointer, Ptr, Ref, and Reference.

◆ getArray()

◆ getAttrs() [1/2]

ParsedAttributesView & clang::DeclaratorChunk::getAttrs ( )
inline

Definition at line 1634 of file DeclSpec.h.

References AttrList.

◆ getAttrs() [2/2]

◆ getBlockPointer()

DeclaratorChunk clang::DeclaratorChunk::getBlockPointer ( unsigned TypeQuals,
SourceLocation Loc )
inlinestatic

◆ getFunction()

DeclaratorChunk DeclaratorChunk::getFunction ( bool hasProto,
bool isAmbiguous,
SourceLocation LParenLoc,
ParamInfo * Params,
unsigned NumParams,
SourceLocation EllipsisLoc,
SourceLocation RParenLoc,
bool RefQualifierIsLvalueRef,
SourceLocation RefQualifierLoc,
SourceLocation MutableLoc,
ExceptionSpecificationType ESpecType,
SourceRange ESpecRange,
ParsedType * Exceptions,
SourceRange * ExceptionRanges,
unsigned NumExceptions,
Expr * NoexceptExpr,
CachedTokens * ExceptionSpecTokens,
ArrayRef< NamedDecl * > DeclsInPrototype,
SourceLocation LocalRangeBegin,
SourceLocation LocalRangeEnd,
Declarator & TheDeclarator,
TypeResult TrailingReturnType = TypeResult(),
SourceLocation TrailingReturnTypeLoc = SourceLocation(),
DeclSpec * MethodQualifiers = nullptr )
static

DeclaratorChunk::getFunction - Return a DeclaratorChunk for a function.

"TheDeclarator" is the declarator that this will be added to.

Definition at line 132 of file DeclSpec.cpp.

References DeclaratorChunk(), clang::DeclaratorChunk::FunctionTypeInfo::DeclsInPrototype, clang::DeclaratorChunk::FunctionTypeInfo::DeleteParams, clang::DeclaratorChunk::FunctionTypeInfo::EllipsisLoc, EndLoc, clang::EST_DependentNoexcept, clang::EST_Dynamic, clang::EST_NoexceptFalse, clang::EST_NoexceptTrue, clang::EST_None, clang::EST_Unparsed, clang::DeclaratorChunk::FunctionTypeInfo::Exceptions, clang::DeclaratorChunk::FunctionTypeInfo::ExceptionSpecLocBeg, clang::DeclaratorChunk::FunctionTypeInfo::ExceptionSpecLocEnd, clang::DeclaratorChunk::FunctionTypeInfo::ExceptionSpecTokens, clang::DeclaratorChunk::FunctionTypeInfo::ExceptionSpecType, clang::DeclSpec::forEachCVRUQualifier(), Fun, Function, clang::ActionResult< PtrTy, Compress >::get(), clang::DeclSpec::getAttributePool(), clang::DeclSpec::getAttributes(), clang::SourceRange::getBegin(), clang::SourceRange::getEnd(), clang::DeclSpec::getTypeQualifiers(), clang::DeclaratorChunk::FunctionTypeInfo::hasPrototype, clang::DeclaratorChunk::FunctionTypeInfo::HasTrailingReturnType, clang::Declarator::InlineParams, clang::DeclaratorChunk::FunctionTypeInfo::isAmbiguous, clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::ActionResult< PtrTy, Compress >::isUsable(), clang::SourceLocation::isValid(), clang::DeclaratorChunk::FunctionTypeInfo::isVariadic, Kind, Loc, clang::DeclaratorChunk::FunctionTypeInfo::LParenLoc, clang::DeclaratorChunk::FunctionTypeInfo::MethodQualifiers, clang::DeclaratorChunk::FunctionTypeInfo::MutableLoc, clang::DeclaratorChunk::FunctionTypeInfo::NoexceptExpr, clang::DeclaratorChunk::FunctionTypeInfo::NumExceptionsOrDecls, clang::DeclaratorChunk::FunctionTypeInfo::NumParams, clang::DeclaratorChunk::FunctionTypeInfo::Params, clang::DeclaratorChunk::FunctionTypeInfo::QualAttrFactory, clang::DeclaratorChunk::TypeAndRange::Range, clang::DeclaratorChunk::FunctionTypeInfo::RefQualifierIsLValueRef, clang::DeclaratorChunk::FunctionTypeInfo::RefQualifierLoc, clang::DeclaratorChunk::FunctionTypeInfo::RParenLoc, clang::DeclSpec::SetTypeQual(), clang::ParsedAttributesView::size(), clang::AttributePool::takeAllFrom(), clang::ParsedAttributes::takeAllFrom(), clang::DeclSpec::TQ_atomic, clang::DeclaratorChunk::FunctionTypeInfo::TrailingReturnType, clang::DeclaratorChunk::FunctionTypeInfo::TrailingReturnTypeLoc, and clang::DeclaratorChunk::TypeAndRange::Ty.

Referenced by clang::Sema::ImplicitlyDefineFunction(), and maybeSynthesizeBlockSignature().

◆ getMemberPointer()

◆ getParen()

DeclaratorChunk clang::DeclaratorChunk::getParen ( SourceLocation LParenLoc,
SourceLocation RParenLoc )
inlinestatic

Return a DeclaratorChunk for a paren.

Definition at line 1746 of file DeclSpec.h.

References DeclaratorChunk(), EndLoc, Kind, Loc, and Paren.

◆ getPipe()

DeclaratorChunk clang::DeclaratorChunk::getPipe ( unsigned TypeQuals,
SourceLocation Loc )
inlinestatic

Return a DeclaratorChunk for a block.

Definition at line 1721 of file DeclSpec.h.

References Cls, DeclaratorChunk(), Kind, Loc, Pipe, and clang::DeclaratorChunk::BlockPointerTypeInfo::TypeQuals.

◆ getPointer()

◆ getReference()

◆ getSourceRange()

SourceRange clang::DeclaratorChunk::getSourceRange ( ) const
inline

Definition at line 1233 of file DeclSpec.h.

References EndLoc, and Loc.

Referenced by diagnoseInvalidDeclaratorChunks().

◆ isParen()

bool clang::DeclaratorChunk::isParen ( ) const
inline

Definition at line 1755 of file DeclSpec.h.

References Kind, and Paren.

Member Data Documentation

◆ [union]

union { ... } clang::DeclaratorChunk

◆ Arr

◆ AttrList

ParsedAttributesView clang::DeclaratorChunk::AttrList

Definition at line 1239 of file DeclSpec.h.

Referenced by clang::Declarator::AddTypeInfo(), getAttrs(), and getAttrs().

◆ Cls

BlockPointerTypeInfo clang::DeclaratorChunk::Cls

Definition at line 1613 of file DeclSpec.h.

Referenced by destroy(), getBlockPointer(), GetFullTypeForDeclarator(), and getPipe().

◆ EndLoc

SourceLocation clang::DeclaratorChunk::EndLoc

EndLoc - If valid, the place where this chunck ends.

Definition at line 1231 of file DeclSpec.h.

Referenced by getArray(), GetFullTypeForDeclarator(), getFunction(), getMemberPointer(), getParen(), getSourceRange(), and warnAboutAmbiguousFunction().

◆ Fun

◆ []

◆ Loc

◆ Mem

◆ PipeInfo

PipeTypeInfo clang::DeclaratorChunk::PipeInfo

Definition at line 1615 of file DeclSpec.h.

Referenced by destroy().

◆ Ptr

◆ Ref

ReferenceTypeInfo clang::DeclaratorChunk::Ref

Definition at line 1610 of file DeclSpec.h.

Referenced by destroy(), GetFullTypeForDeclarator(), and getReference().


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