clang 22.0.0git
|
Describes a memory block created by an allocation site. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/AST/ByteCode/Descriptor.h"
Classes | |
struct | UnknownSize |
Token to denote structures of unknown size. More... |
Public Types | |
using | MetadataSize = std::optional<unsigned> |
Public Member Functions | |
Descriptor (const DeclTy &D, const Type *SourceTy, PrimType Type, MetadataSize MD, bool IsConst, bool IsTemporary, bool IsMutable, bool IsVolatile) | |
Allocates a descriptor for a primitive. | |
Descriptor (const DeclTy &D, PrimType Type, MetadataSize MD, size_t NumElems, bool IsConst, bool IsTemporary, bool IsMutable) | |
Allocates a descriptor for an array of primitives. | |
Descriptor (const DeclTy &D, PrimType Type, MetadataSize MDSize, bool IsConst, bool IsTemporary, UnknownSize) | |
Allocates a descriptor for an array of primitives of unknown size. | |
Descriptor (const DeclTy &D, const Type *SourceTy, const Descriptor *Elem, MetadataSize MD, unsigned NumElems, bool IsConst, bool IsTemporary, bool IsMutable) | |
Allocates a descriptor for an array of composites. | |
Descriptor (const DeclTy &D, const Descriptor *Elem, MetadataSize MD, bool IsTemporary, UnknownSize) | |
Allocates a descriptor for an array of composites of unknown size. | |
Descriptor (const DeclTy &D, const Record *R, MetadataSize MD, bool IsConst, bool IsTemporary, bool IsMutable, bool IsVolatile) | |
Allocates a descriptor for a record. | |
Descriptor (const DeclTy &D, MetadataSize MD=std::nullopt) | |
Allocates a dummy descriptor. | |
QualType | getType () const |
QualType | getElemQualType () const |
QualType | getDataType (const ASTContext &Ctx) const |
SourceLocation | getLocation () const |
SourceInfo | getLoc () const |
const Decl * | asDecl () const |
const Expr * | asExpr () const |
const DeclTy & | getSource () const |
const ValueDecl * | asValueDecl () const |
const VarDecl * | asVarDecl () const |
const FieldDecl * | asFieldDecl () const |
const RecordDecl * | asRecordDecl () const |
unsigned | getSize () const |
Returns the size of the object without metadata. | |
PrimType | getPrimType () const |
unsigned | getAllocSize () const |
Returns the allocated size, including metadata. | |
unsigned | getElemSize () const |
returns the size of an element when the structure is viewed as an array. | |
unsigned | getMetadataSize () const |
Returns the size of the metadata. | |
unsigned | getNumElems () const |
Returns the number of elements stored in the block. | |
bool | isPrimitiveArray () const |
Checks if the descriptor is of an array of primitives. | |
bool | isCompositeArray () const |
Checks if the descriptor is of an array of composites. | |
bool | isZeroSizeArray () const |
Checks if the descriptor is of an array of zero size. | |
bool | isUnknownSizeArray () const |
Checks if the descriptor is of an array of unknown size. | |
bool | isPrimitive () const |
Checks if the descriptor is of a primitive. | |
bool | isArray () const |
Checks if the descriptor is of an array. | |
bool | isRecord () const |
Checks if the descriptor is of a record. | |
bool | isUnion () const |
Checks if the descriptor is of a union. | |
bool | hasTrivialDtor () const |
Whether variables of this descriptor need their destructor called or not. | |
void | dump () const |
void | dump (llvm::raw_ostream &OS) const |
void | dumpFull (unsigned Offset=0, unsigned Indent=0) const |
Dump descriptor, including all valid offsets. |
Public Attributes | |
const Record *const | ElemRecord = nullptr |
Pointer to the record, if block contains records. | |
const Descriptor *const | ElemDesc = nullptr |
Descriptor of the array element. | |
const OptPrimType | PrimT = std::nullopt |
The primitive type this descriptor was created for, or the primitive element type in case this is a primitive array. | |
const bool | IsConst = false |
Flag indicating if the block is mutable. | |
const bool | IsMutable = false |
Flag indicating if a field is mutable. | |
const bool | IsTemporary = false |
Flag indicating if the block is a temporary. | |
const bool | IsVolatile = false |
const bool | IsArray = false |
Flag indicating if the block is an array. | |
bool | IsConstexprUnknown = false |
const BlockCtorFn | CtorFn = nullptr |
Storage management methods. | |
const BlockDtorFn | DtorFn = nullptr |
Static Public Attributes | |
static constexpr MetadataSize | InlineDescMD = sizeof(InlineDescriptor) |
static constexpr MetadataSize | GlobalMD = sizeof(GlobalInlineDescriptor) |
static constexpr unsigned | MaxArrayElemBytes |
Maximum number of bytes to be used for array elements. |
Describes a memory block created by an allocation site.
Definition at line 122 of file Descriptor.h.
using clang::interp::Descriptor::MetadataSize = std::optional<unsigned> |
Definition at line 143 of file Descriptor.h.
Descriptor::Descriptor | ( | const DeclTy & | D, |
const Type * | SourceTy, | ||
PrimType | Type, | ||
MetadataSize | MD, | ||
bool | IsConst, | ||
bool | IsTemporary, | ||
bool | IsMutable, | ||
bool | IsVolatile ) |
Allocates a descriptor for a primitive.
Primitives.
Definition at line 287 of file Descriptor.cpp.
References clang::interp::align(), CtorFn, DtorFn, getCtorPrim(), getDtorPrim(), IsConst, IsMutable, IsTemporary, IsVolatile, clang::interp::primSize(), and PrimT.
Referenced by Descriptor(), and Descriptor().
Descriptor::Descriptor | ( | const DeclTy & | D, |
PrimType | Type, | ||
MetadataSize | MD, | ||
size_t | NumElems, | ||
bool | IsConst, | ||
bool | IsTemporary, | ||
bool | IsMutable ) |
Allocates a descriptor for an array of primitives.
Primitive arrays.
Definition at line 300 of file Descriptor.cpp.
References clang::interp::align(), CtorFn, DtorFn, getCtorArrayPrim(), getDtorArrayPrim(), IsArray, IsConst, IsMutable, IsTemporary, MaxArrayElemBytes, clang::interp::primSize(), PrimT, and true.
Descriptor::Descriptor | ( | const DeclTy & | D, |
PrimType | Type, | ||
MetadataSize | MDSize, | ||
bool | IsConst, | ||
bool | IsTemporary, | ||
UnknownSize | ) |
Allocates a descriptor for an array of primitives of unknown size.
Primitive unknown-size arrays.
Definition at line 314 of file Descriptor.cpp.
References CtorFn, DtorFn, false, getCtorArrayPrim(), getDtorArrayPrim(), IsArray, IsConst, IsMutable, IsTemporary, clang::interp::primSize(), PrimT, and true.
Descriptor::Descriptor | ( | const DeclTy & | D, |
const Type * | SourceTy, | ||
const Descriptor * | Elem, | ||
MetadataSize | MD, | ||
unsigned | NumElems, | ||
bool | IsConst, | ||
bool | IsTemporary, | ||
bool | IsMutable ) |
Allocates a descriptor for an array of composites.
Arrays of composite elements.
Definition at line 326 of file Descriptor.cpp.
References ctorArrayDesc(), CtorFn, Descriptor(), dtorArrayDesc(), DtorFn, ElemDesc, getAllocSize(), IsArray, IsConst, IsMutable, IsTemporary, max(), clang::nullptr, and true.
Descriptor::Descriptor | ( | const DeclTy & | D, |
const Descriptor * | Elem, | ||
MetadataSize | MD, | ||
bool | IsTemporary, | ||
UnknownSize | ) |
Allocates a descriptor for an array of composites of unknown size.
Unknown-size arrays of composite elements.
Definition at line 341 of file Descriptor.cpp.
References ctorArrayDesc(), CtorFn, Descriptor(), dtorArrayDesc(), DtorFn, ElemDesc, false, getAllocSize(), IsArray, IsConst, IsMutable, IsTemporary, clang::nullptr, and true.
Descriptor::Descriptor | ( | const DeclTy & | D, |
const Record * | R, | ||
MetadataSize | MD, | ||
bool | IsConst, | ||
bool | IsTemporary, | ||
bool | IsMutable, | ||
bool | IsVolatile ) |
Allocates a descriptor for a record.
Composite records.
Definition at line 352 of file Descriptor.cpp.
References CtorFn, ctorRecord(), DtorFn, dtorRecord(), ElemRecord, IsConst, IsMutable, IsTemporary, IsVolatile, max(), needsRecordDtor(), and clang::nullptr.
Descriptor::Descriptor | ( | const DeclTy & | D, |
MetadataSize | MD = std::nullopt ) |
Allocates a dummy descriptor.
Dummy.
Definition at line 364 of file Descriptor.cpp.
References ElemRecord, false, IsConst, IsMutable, IsTemporary, clang::nullptr, and true.
|
inline |
Definition at line 210 of file Descriptor.h.
Referenced by asFieldDecl(), asRecordDecl(), asValueDecl(), asVarDecl(), clang::interp::IntPointer::baseCast(), clang::interp::CheckLiteralType(), clang::interp::computePointerOffset(), clang::interp::Destroy(), dump(), getType(), clang::interp::interp__builtin_operator_delete(), clang::interp::Pointer::isField(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 211 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::DynamicAllocator::allocate(), clang::interp::CheckBCPResult(), CheckTemporary(), clang::interp::CheckVolatile(), clang::interp::CmpHelperEQ< Pointer >(), dump(), clang::interp::Program::dump(), clang::interp::Free(), getDataType(), getType(), clang::interp::InitGlobalTemp(), clang::interp::InitGlobalTempComp(), clang::interp::interp__builtin_assume_aligned(), clang::interp::interp__builtin_operator_delete(), clang::interp::Pointer::pointsToLiteral(), clang::interp::Pointer::pointsToStringLiteral(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 222 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::Pointer::toRValue().
|
inline |
Definition at line 226 of file Descriptor.h.
References asDecl().
|
inline |
Definition at line 214 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::CheckDummy(), clang::interp::CheckExtern(), clang::interp::CheckGlobalLoad(), clang::interp::CheckLocalLoad(), clang::interp::CheckVolatile(), getType(), clang::interp::interp__builtin_assume_aligned(), clang::interp::interp__builtin_is_aligned_up_down(), clang::interp::isConstexprUnknown(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 218 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::CheckConstant(), clang::interp::CheckExtern(), clang::interp::CheckWeak(), clang::interp::DiagnoseUninitialized(), and clang::interp::interp__builtin_is_within_lifetime().
LLVM_DUMP_METHOD void Descriptor::dump | ( | ) | const |
Definition at line 380 of file Disasm.cpp.
References dump().
Referenced by clang::interp::Program::dump().
LLVM_DUMP_METHOD void Descriptor::dump | ( | llvm::raw_ostream & | OS | ) | const |
Definition at line 385 of file Disasm.cpp.
References asDecl(), asExpr(), getPrimType(), isCompositeArray(), IsConstexprUnknown, isPrimitive(), isPrimitiveArray(), isRecord(), isUnion(), isUnknownSizeArray(), isZeroSizeArray(), and primTypeToString().
Dump descriptor, including all valid offsets.
Definition at line 417 of file Disasm.cpp.
References dump(), ElemDesc, ElemRecord, getAllocSize(), getMetadataSize(), getNumElems(), getSize(), clang::Indent(), isCompositeArray(), isPrimitive(), and isRecord().
|
inline |
Returns the allocated size, including metadata.
Definition at line 242 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::Program::createDescriptor(), clang::interp::Program::createGlobalString(), clang::interp::ByteCodeEmitter::createLocal(), clang::interp::EvalEmitter::createLocal(), ctorArrayDesc(), Descriptor(), Descriptor(), dtorArrayDesc(), dumpFull(), clang::interp::Program::getOrCreateDummy(), and clang::interp::Program::getOrCreateRecord().
QualType Descriptor::getDataType | ( | const ASTContext & | Ctx | ) | const |
Definition at line 414 of file Descriptor.cpp.
References asExpr(), clang::ASTContext::getConstantArrayType(), getNumElems(), getType(), clang::isa(), IsArray, and clang::Normal.
Referenced by clang::interp::CheckNewDeleteForms(), clang::interp::CheckNewTypeMismatch(), clang::interp::DoBitCast(), clang::interp::DoBitCastPtr(), and clang::interp::Pointer::toAPValue().
QualType Descriptor::getElemQualType | ( | ) | const |
Definition at line 390 of file Descriptor.cpp.
References getType(), isArray(), isPrimitiveArray(), and clang::T.
Referenced by clang::interp::computeFullDescSize(), clang::interp::computePointerOffset(), clang::interp::convertBoolVectorToInt(), enumerateData(), clang::interp::getElemType(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_popcount(), clang::interp::interp__builtin_memchr(), clang::interp::interp__builtin_vector_reduce(), and clang::interp::Pointer::toAPValue().
|
inline |
returns the size of an element when the structure is viewed as an array.
Definition at line 244 of file Descriptor.h.
Referenced by clang::interp::Pointer::elem(), clang::interp::Pointer::elemSize(), getNumElems(), and clang::interp::interp__builtin_strlen().
SourceInfo Descriptor::getLoc | ( | ) | const |
Definition at line 446 of file Descriptor.cpp.
SourceLocation Descriptor::getLocation | ( | ) | const |
Definition at line 438 of file Descriptor.cpp.
Referenced by clang::interp::CheckFieldsInitialized(), CheckTemporary(), clang::interp::Destroy(), and clang::interp::Pointer::getDeclLoc().
|
inline |
Returns the size of the metadata.
Definition at line 246 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::DynamicAllocator::allocate(), clang::interp::CheckDowncast(), dumpFull(), and clang::interp::MemberPointer::toPointer().
|
inline |
Returns the number of elements stored in the block.
Definition at line 249 of file Descriptor.h.
References getElemSize(), and getSize().
Referenced by clang::interp::collectBlocks(), clang::interp::computeFullDescSize(), clang::interp::copyComposite(), ctorArrayDesc(), ctorArrayTy(), dtorArrayDesc(), dtorArrayTy(), dumpFull(), enumerateData(), getDataType(), clang::interp::InitElem(), clang::interp::InitElemPop(), clang::interp::Pointer::initialize(), clang::interp::Pointer::initializeElement(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_popcount(), clang::interp::RunDestructors(), and clang::interp::zeroAll().
|
inline |
Definition at line 236 of file Descriptor.h.
References isPrimitive(), isPrimitiveArray(), and PrimT.
Referenced by clang::interp::ArrayElem(), clang::interp::ArrayElemPop(), clang::interp::collectBlocks(), clang::interp::copyComposite(), dump(), clang::interp::Program::dump(), enumerateData(), clang::interp::Context::evaluateStrlen(), clang::interp::interp__builtin_select(), clang::interp::interp__builtin_x86_insert_subvector(), and clang::interp::zeroAll().
|
inline |
Returns the size of the object without metadata.
Definition at line 231 of file Descriptor.h.
References isUnknownSizeArray().
Referenced by clang::interp::AllocCN(), dumpFull(), clang::interp::Pointer::elemSize(), getNumElems(), and clang::interp::Pointer::getSize().
|
inline |
Definition at line 212 of file Descriptor.h.
Referenced by clang::interp::Pointer::getSource().
QualType Descriptor::getType | ( | ) | const |
Definition at line 371 of file Descriptor.cpp.
References asDecl(), asExpr(), asValueDecl(), ElemRecord, clang::Decl::getASTContext(), clang::ASTContext::getCanonicalTagType(), isRecord(), and clang::T.
Referenced by clang::interp::CallVirt(), clang::interp::computeFullDescSize(), enumerateData(), getDataType(), getElemQualType(), clang::interp::getElemType(), clang::interp::GetPtrDerivedPop(), clang::interp::Pointer::getType(), clang::interp::interp__builtin_memchr(), clang::interp::interp__builtin_object_size(), and clang::interp::Pointer::toAPValue().
bool Descriptor::hasTrivialDtor | ( | ) | const |
Whether variables of this descriptor need their destructor called or not.
Definition at line 454 of file Descriptor.cpp.
References ElemDesc, ElemRecord, isPrimitive(), isPrimitiveArray(), and isRecord().
Referenced by clang::interp::RunDestructors().
|
inline |
Checks if the descriptor is of an array.
Definition at line 266 of file Descriptor.h.
References IsArray.
Referenced by clang::interp::computeFullDescSize(), clang::interp::finishGlobalRecurse(), getElemQualType(), clang::interp::getElemType(), clang::interp::InitElem(), clang::interp::InitElemPop(), clang::interp::interp__builtin_memchr(), clang::interp::interp__builtin_memcpy(), clang::interp::isUserWritingOffTheEnd(), and clang::interp::OffsetHelper().
|
inline |
Checks if the descriptor is of an array of composites.
Definition at line 256 of file Descriptor.h.
References ElemDesc, and IsArray.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::collectBlocks(), clang::interp::copyComposite(), dump(), dumpFull(), clang::interp::endLifetimeRecurse(), enumerateData(), clang::interp::RunDestructors(), clang::interp::startLifetimeRecurse(), and clang::interp::zeroAll().
|
inline |
Checks if the descriptor is of a primitive.
Definition at line 263 of file Descriptor.h.
References ElemRecord, IsArray, and PrimT.
Referenced by clang::interp::collectBlocks(), clang::interp::computeFullDescSize(), clang::interp::copyComposite(), dump(), clang::interp::Program::dump(), dumpFull(), enumerateData(), clang::interp::getElemType(), getPrimType(), hasTrivialDtor(), clang::interp::RunDestructors(), and clang::interp::zeroAll().
|
inline |
Checks if the descriptor is of an array of primitives.
Definition at line 254 of file Descriptor.h.
References ElemDesc, and IsArray.
Referenced by clang::interp::collectBlocks(), clang::interp::convertBoolVectorToInt(), clang::interp::copyComposite(), dump(), enumerateData(), clang::interp::Context::evaluateStrlen(), getElemQualType(), getPrimType(), hasTrivialDtor(), clang::interp::Pointer::initialize(), clang::interp::Pointer::inPrimitiveArray(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_popcount(), clang::interp::interp__builtin_nan(), clang::interp::interp__builtin_strcmp(), clang::interp::interp__builtin_strlen(), clang::interp::interp__builtin_vector_reduce(), clang::interp::interp__builtin_x86_insert_subvector(), clang::interp::Pointer::isElementInitialized(), clang::interp::Pointer::isInitialized(), clang::interp::RunDestructors(), and clang::interp::zeroAll().
|
inline |
Checks if the descriptor is of a record.
Definition at line 268 of file Descriptor.h.
References ElemRecord, and IsArray.
Referenced by clang::interp::computeFullDescSize(), clang::interp::copyComposite(), clang::interp::copyRecord(), dump(), dumpFull(), enumerateData(), getType(), hasTrivialDtor(), isUnion(), clang::interp::RunDestructors(), clang::interp::runRecordDestructor(), and clang::interp::zeroAll().
bool Descriptor::isUnion | ( | ) | const |
Checks if the descriptor is of a union.
Definition at line 469 of file Descriptor.cpp.
References ElemRecord, and isRecord().
Referenced by ctorRecord(), dump(), and initField().
|
inline |
Checks if the descriptor is of an array of unknown size.
Definition at line 260 of file Descriptor.h.
Referenced by dump(), getSize(), and clang::interp::Pointer::isUnknownSizeArray().
|
inline |
Checks if the descriptor is of an array of zero size.
Definition at line 258 of file Descriptor.h.
Referenced by dump().
const BlockCtorFn clang::interp::Descriptor::CtorFn = nullptr |
Storage management methods.
Definition at line 172 of file Descriptor.h.
Referenced by ctorArrayDesc(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), and initField().
const BlockDtorFn clang::interp::Descriptor::DtorFn = nullptr |
Definition at line 173 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), destroyField(), and dtorArrayDesc().
const Descriptor* const clang::interp::Descriptor::ElemDesc = nullptr |
Descriptor of the array element.
Definition at line 155 of file Descriptor.h.
Referenced by ctorArrayDesc(), Descriptor(), Descriptor(), dtorArrayDesc(), dumpFull(), clang::interp::Pointer::getElemRecord(), hasTrivialDtor(), isCompositeArray(), isPrimitiveArray(), and clang::interp::RunDestructors().
Pointer to the record, if block contains records.
Definition at line 153 of file Descriptor.h.
Referenced by clang::interp::checkConstructor(), clang::interp::collectBlocks(), clang::interp::computeFullDescSize(), clang::interp::copyRecord(), ctorRecord(), Descriptor(), Descriptor(), destroyBase(), dtorRecord(), dumpFull(), enumerateData(), clang::interp::Pointer::getElemRecord(), clang::interp::Pointer::getRecord(), getType(), hasTrivialDtor(), initBase(), isPrimitive(), isRecord(), isUnion(), clang::interp::runRecordDestructor(), and clang::interp::zeroAll().
|
staticconstexpr |
Definition at line 145 of file Descriptor.h.
Referenced by clang::interp::Program::createGlobalString().
|
staticconstexpr |
Definition at line 144 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::DynamicAllocator::allocate(), clang::interp::Compiler< Emitter >::allocateLocal(), clang::interp::Compiler< Emitter >::allocateLocalPrimitive(), clang::interp::Compiler< Emitter >::allocateTemporary(), clang::interp::interp__builtin_operator_new(), clang::interp::Compiler< Emitter >::VisitCastExpr(), and clang::interp::Compiler< Emitter >::VisitCXXNewExpr().
Flag indicating if the block is an array.
Definition at line 168 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), Descriptor(), clang::interp::Pointer::expand(), getDataType(), clang::interp::Pointer::hasSameArray(), clang::interp::Pointer::inArray(), initBase(), initField(), isArray(), isCompositeArray(), isPrimitive(), isPrimitiveArray(), and isRecord().
Flag indicating if the block is mutable.
Definition at line 161 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), ctorArrayDesc(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), initBase(), initField(), and clang::interp::Pointer::isConst().
Definition at line 169 of file Descriptor.h.
Referenced by clang::interp::Compiler< Emitter >::allocateLocal(), clang::interp::Compiler< Emitter >::allocateLocalPrimitive(), dump(), and clang::interp::isConstexprUnknown().
Flag indicating if a field is mutable.
Definition at line 163 of file Descriptor.h.
Referenced by ctorArrayDesc(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), initBase(), and initField().
Flag indicating if the block is a temporary.
Definition at line 165 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), and clang::interp::Program::dump().
Definition at line 166 of file Descriptor.h.
Referenced by clang::interp::CheckGlobalLoad(), clang::interp::CheckLocalLoad(), Descriptor(), Descriptor(), initField(), and clang::interp::Pointer::isVolatile().
|
staticconstexpr |
Maximum number of bytes to be used for array elements.
Definition at line 148 of file Descriptor.h.
Referenced by clang::interp::CheckArraySize(), Descriptor(), and clang::interp::interp__builtin_operator_new().
const OptPrimType clang::interp::Descriptor::PrimT = std::nullopt |
The primitive type this descriptor was created for, or the primitive element type in case this is a primitive array.
Definition at line 159 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), getPrimType(), and isPrimitive().