|
clang 24.0.0git
|
Describes a memory block created by an allocation site. More...
#include "/work/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 Member Functions | |
| Descriptor (DeclOrExpr D, const Type *SourceTy, PrimType Type, bool IsConst, bool IsTemporary, bool IsMutable, bool IsVolatile) | |
| Allocates a descriptor for a primitive. | |
| Descriptor (DeclOrExpr D, const Type *SourceTy, PrimType Type, size_t NumElems, bool IsConst, bool IsTemporary, bool IsMutable, bool IsVolatile) | |
| Allocates a descriptor for an array of primitives. | |
| Descriptor (DeclOrExpr D, PrimType Type, bool IsConst, bool IsTemporary, UnknownSize) | |
| Allocates a descriptor for an array of primitives of unknown size. | |
| Descriptor (DeclOrExpr D, const Type *SourceTy, const Descriptor *Elem, unsigned NumElems, bool IsConst, bool IsTemporary, bool IsMutable) | |
| Allocates a descriptor for an array of composites. | |
| Descriptor (DeclOrExpr D, const Descriptor *Elem, bool IsTemporary, UnknownSize) | |
| Allocates a descriptor for an array of composites of unknown size. | |
| Descriptor (DeclOrExpr D, const Record *R, bool IsConst, bool IsTemporary, bool IsMutable, bool IsVolatile) | |
| Allocates a descriptor for a record. | |
| Descriptor (DeclOrExpr D) | |
| 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 |
| DeclOrExpr | getSource () const |
| const ValueDecl * | asValueDecl () const |
| const VarDecl * | asVarDecl () const |
| const FieldDecl * | asFieldDecl () const |
| const RecordDecl * | asRecordDecl () const |
| template<typename T> | |
| const T * | getAs () 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 | getElemDataSize () const |
| Returns the element data size, i.e. | |
| 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. | |
| DynAllocKind | getDynAllocKind () const |
| Returns the kind of dynamic allocation source of this block. | |
| bool | isDynAlloc () const |
| Checks if the descriptor is of a dynamic allocation. | |
| CharUnits | computeAlignForDynamicAlloc (const ASTContext &Ctx) const |
| Compute the alignment for a dynamic allocation. | |
| 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. | |
Static Public Member Functions | |
| static DynAllocKind | getDynAllocKindForExpr (const Expr *E) |
| Returns the kind of dynamic allocation source of this block. | |
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. | |
| const BlockCtorFn | CtorFn = nullptr |
| Storage management methods. | |
| const BlockDtorFn | DtorFn = nullptr |
Static Public Attributes | |
| 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 126 of file Descriptor.h.
| Descriptor::Descriptor | ( | DeclOrExpr | D, |
| const Type * | SourceTy, | ||
| PrimType | Type, | ||
| bool | IsConst, | ||
| bool | IsTemporary, | ||
| bool | IsMutable, | ||
| bool | IsVolatile ) |
Allocates a descriptor for a primitive.
Primitives.
Definition at line 294 of file Descriptor.cpp.
References clang::interp::align(), CtorFn, DtorFn, getDtorPrim(), IsConst, IsMutable, IsTemporary, IsVolatile, clang::nullptr, clang::interp::primSize(), and PrimT.
Referenced by Descriptor(), and Descriptor().
| Descriptor::Descriptor | ( | DeclOrExpr | D, |
| const Type * | SourceTy, | ||
| PrimType | Type, | ||
| size_t | NumElems, | ||
| bool | IsConst, | ||
| bool | IsTemporary, | ||
| bool | IsMutable, | ||
| bool | IsVolatile ) |
Allocates a descriptor for an array of primitives.
Primitive arrays.
Definition at line 305 of file Descriptor.cpp.
References clang::interp::align(), CtorFn, DtorFn, getDtorArrayPrim(), IsArray, IsConst, IsMutable, IsTemporary, IsVolatile, MaxArrayElemBytes, clang::nullptr, clang::interp::primSize(), PrimT, and true.
| Descriptor::Descriptor | ( | DeclOrExpr | D, |
| PrimType | Type, | ||
| bool | IsConst, | ||
| bool | IsTemporary, | ||
| UnknownSize | ) |
Allocates a descriptor for an array of primitives of unknown size.
Primitive unknown-size arrays.
Definition at line 318 of file Descriptor.cpp.
References CtorFn, DtorFn, false, getDtorArrayPrim(), IsArray, IsConst, IsMutable, IsTemporary, clang::nullptr, clang::interp::primSize(), PrimT, and true.
| Descriptor::Descriptor | ( | DeclOrExpr | D, |
| const Type * | SourceTy, | ||
| const Descriptor * | Elem, | ||
| unsigned | NumElems, | ||
| bool | IsConst, | ||
| bool | IsTemporary, | ||
| bool | IsMutable ) |
Allocates a descriptor for an array of composites.
Arrays of composite elements.
Definition at line 328 of file Descriptor.cpp.
References ctorArrayDesc(), CtorFn, Descriptor(), dtorArrayDesc(), DtorFn, ElemDesc, getAllocSize(), IsArray, IsConst, IsMutable, IsTemporary, max(), clang::nullptr, and true.
| Descriptor::Descriptor | ( | DeclOrExpr | D, |
| const Descriptor * | Elem, | ||
| bool | IsTemporary, | ||
| UnknownSize | ) |
Allocates a descriptor for an array of composites of unknown size.
Unknown-size arrays of composite elements.
Definition at line 342 of file Descriptor.cpp.
References ctorArrayDesc(), CtorFn, Descriptor(), dtorArrayDesc(), DtorFn, ElemDesc, false, getAllocSize(), IsArray, IsConst, IsMutable, IsTemporary, clang::nullptr, and true.
| Descriptor::Descriptor | ( | DeclOrExpr | D, |
| const Record * | R, | ||
| 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 | ( | DeclOrExpr | D | ) |
Allocates a dummy descriptor.
Dummy.
Definition at line 362 of file Descriptor.cpp.
References ElemDesc, false, IsConst, IsMutable, IsTemporary, clang::nullptr, and true.
|
inline |
Definition at line 204 of file Descriptor.h.
Referenced by asFieldDecl(), asRecordDecl(), asValueDecl(), asVarDecl(), clang::interp::IntPointer::baseCast(), clang::interp::CheckLiteralType(), dump(), getAs(), getElemQualType(), getLoc(), getType(), clang::interp::PtrView::isField(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 205 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::DynamicAllocator::allocate(), clang::interp::CheckLoad(), clang::interp::CheckTemporary(), clang::interp::CheckVolatile(), dump(), clang::interp::Program::dump(), getDataType(), getDynAllocKind(), getElemQualType(), clang::interp::Pointer::getRootExpr(), getType(), clang::interp::Integral< Bits, false >::toAPValue(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 216 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::PtrView::getField(), and toRValue().
|
inline |
Definition at line 220 of file Descriptor.h.
References asDecl().
|
inline |
Definition at line 208 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::CheckGlobalLoad(), clang::interp::CheckVolatile(), getElemQualType(), clang::interp::Pointer::getRootValueDecl(), getType(), clang::interp::Integral< Bits, false >::toAPValue(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 212 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::CheckConstant(), clang::interp::CheckWeak(), clang::interp::diagnoseUninitialized(), clang::interp::Program::getPtrGlobal(), clang::interp::GetRefGlobal(), clang::interp::Pointer::hasSameBase(), and clang::interp::InterpState::lifetimeStartedInEvaluation().
| CharUnits Descriptor::computeAlignForDynamicAlloc | ( | const ASTContext & | Ctx | ) | const |
Compute the alignment for a dynamic allocation.
Definition at line 515 of file Descriptor.cpp.
References clang::GetAlignOfDynamicAlloc(), getDataType(), and getDynAllocKind().
| LLVM_DUMP_METHOD void Descriptor::dump | ( | ) | const |
Definition at line 427 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 432 of file Disasm.cpp.
References asDecl(), asExpr(), ElemRecord, getNumElems(), getPrimType(), isCompositeArray(), isPrimitive(), isPrimitiveArray(), isRecord(), isUnion(), isUnknownSizeArray(), isZeroSizeArray(), and primTypeToString().
Dump descriptor, including all valid offsets.
Definition at line 462 of file Disasm.cpp.
References dump(), ElemDesc, ElemRecord, getAllocSize(), getElemSize(), getNumElems(), getPrimType(), getSize(), clang::Indent(), isCompositeArray(), isPrimitive(), isPrimitiveArray(), isRecord(), and primTypeToString().
|
inline |
Returns the allocated size, including metadata.
Definition at line 240 of file Descriptor.h.
Referenced by clang::interp::Block::allocSize(), clang::interp::Program::createDescriptor(), clang::interp::ByteCodeEmitter::createLocal(), ctorArrayDesc(), Descriptor(), Descriptor(), dtorArrayDesc(), dumpFull(), and clang::interp::Program::getOrCreateRecord().
Definition at line 224 of file Descriptor.h.
| QualType Descriptor::getDataType | ( | const ASTContext & | Ctx | ) | const |
Definition at line 449 of file Descriptor.cpp.
References asExpr(), clang::ASTContext::getConstantArrayType(), getNumElems(), getPointeeType(), getType(), IsArray, isDynAlloc(), and clang::Normal.
Referenced by clang::interp::CheckNewDeleteForms(), computeAlignForDynamicAlloc(), clang::interp::DoBitCastPtr(), clang::interp::evaluateBuiltinObjectSize(), and clang::interp::Pointer::toAPValue().
|
inline |
Returns the kind of dynamic allocation source of this block.
Definition at line 278 of file Descriptor.h.
References asExpr(), getDynAllocKindForExpr(), and clang::None.
Referenced by computeAlignForDynamicAlloc(), isDynAlloc(), and clang::interp::Pointer::toAPValue().
|
static |
Returns the kind of dynamic allocation source of this block.
Definition at line 499 of file Descriptor.cpp.
References clang::ArrayNew, clang::BuiltinOperatorNew, clang::interp::NE(), clang::New, clang::None, and clang::StdAllocator.
Referenced by getDynAllocKind().
| unsigned Descriptor::getElemDataSize | ( | ) | const |
Returns the element data size, i.e.
not what the size of our primitive data type is, but what the data size of that is. E.g., for PT_SInt32, that's 4 bytes.
Definition at line 489 of file Descriptor.cpp.
References FIXED_SIZE_INT_TYPE_SWITCH, getPrimType(), clang::interp::isIntegerOrBoolType(), isPrimitive(), isPrimitiveArray(), and clang::interp::PT_Bool.
Referenced by clang::interp::interp__builtin_strlen().
| QualType Descriptor::getElemQualType | ( | ) | const |
Definition at line 404 of file Descriptor.cpp.
References asDecl(), asExpr(), asValueDecl(), ElemRecord, clang::Decl::getASTContext(), clang::ASTContext::getTagType(), getType(), isArray(), IsConst, isPrimitiveArray(), isRecord(), clang::None, and clang::T.
Referenced by clang::interp::Pointer::computeLayoutOffset(), clang::interp::convertBoolVectorToInt(), clang::interp::copyComposite(), enumerateData(), clang::interp::getElemType(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_int_unaryop(), clang::interp::interp__builtin_stdc_memreverse8(), clang::interp::interp__builtin_vector_reduce(), clang::interp::lvalFields(), and clang::interp::Pointer::toAPValue().
|
inline |
returns the size of an element when the structure is viewed as an array.
Definition at line 242 of file Descriptor.h.
Referenced by dumpFull(), clang::interp::PtrView::elem(), clang::interp::PtrView::elemSize(), and getNumElems().
| SourceInfo Descriptor::getLoc | ( | ) | const |
Definition at line 464 of file Descriptor.cpp.
References asDecl().
|
inline |
Definition at line 201 of file Descriptor.h.
Referenced by clang::interp::CheckFieldsInitialized(), and clang::interp::noteValueLocation().
|
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::CheckArrayInitialized(), clang::interp::collectBlocks(), clang::interp::copyComposite(), ctorArrayDesc(), dtorArrayDesc(), dtorArrayTy(), dump(), dumpFull(), enumerateData(), getDataType(), clang::interp::InitElem(), clang::interp::InitElemPop(), clang::interp::PtrView::initialize(), clang::interp::PtrView::initializeElement(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_int_unaryop(), clang::interp::lvalFields(), clang::interp::RunDestructors(), clang::interp::PtrView::setLifeState(), and clang::interp::zeroAll().
|
inline |
Definition at line 234 of file Descriptor.h.
References isPrimitive(), isPrimitiveArray(), and PrimT.
Referenced by clang::interp::collectBlocks(), clang::interp::CopyArray(), clang::interp::copyComposite(), dump(), clang::interp::Program::dump(), dumpFull(), enumerateData(), clang::interp::Context::evaluateStrlen(), getElemDataSize(), clang::interp::Program::getOrCreateRecord(), clang::interp::InterpFrame::getParamPointer(), clang::interp::handleReference(), clang::interp::interp__builtin_ia32_bmac(), clang::interp::interp__builtin_ia32_cvt_mask2vec(), clang::interp::interp__builtin_ia32_cvt_vec2mask(), clang::interp::interp__builtin_ia32_extract_vector(), clang::interp::interp__builtin_ia32_extract_vector_masked(), clang::interp::interp__builtin_ia32_insert_subvector(), clang::interp::interp__builtin_ia32_select(), clang::interp::interp__builtin_ia32_vec_ext(), clang::interp::interp__builtin_strlen(), clang::interp::isOrHasPtr(), clang::interp::lvalFields(), clang::interp::SetThreeWayComparisonField(), toRValue(), and clang::interp::zeroAll().
|
inline |
Returns the size of the object without metadata.
Definition at line 229 of file Descriptor.h.
References isUnknownSizeArray().
Referenced by clang::interp::AllocCN(), dumpFull(), getNumElems(), clang::interp::PtrView::getSize(), and clang::interp::PtrView::isOnePastEnd().
|
inline |
Definition at line 206 of file Descriptor.h.
| QualType Descriptor::getType | ( | ) | const |
Definition at line 368 of file Descriptor.cpp.
References asDecl(), asExpr(), asValueDecl(), ElemRecord, clang::Decl::getASTContext(), clang::ASTContext::getTagType(), getType(), clang::isa(), IsConst, isRecord(), clang::None, and clang::T.
Referenced by clang::interp::AllocCN(), clang::interp::CallVirt(), computeFullDescSize(), clang::interp::Pointer::computeLayoutOffset(), clang::interp::Pointer::computeOffsetForComparison(), enumerateData(), getDataType(), getElemQualType(), clang::interp::getElemType(), getType(), clang::interp::PtrView::getType(), clang::interp::interp__builtin_stdc_memreverse8(), and toRValue().
| bool Descriptor::hasTrivialDtor | ( | ) | const |
Whether variables of this descriptor need their destructor called or not.
Definition at line 472 of file Descriptor.cpp.
References ElemDesc, ElemRecord, isPrimitive(), isPrimitiveArray(), and isRecord().
Referenced by clang::interp::RunDestructors(), and clang::interp::Compiler< Emitter >::visitDtorCall().
|
inline |
Checks if the descriptor is of an array.
Definition at line 266 of file Descriptor.h.
References IsArray.
Referenced by clang::interp::CheckArrayInitialized(), clang::interp::CheckFieldsInitialized(), computeFullDescSize(), clang::interp::Pointer::computeLayoutOffset(), clang::interp::Pointer::computeSplitPoint(), getElemQualType(), clang::interp::getElemType(), clang::interp::InitElem(), clang::interp::InitElemPop(), clang::interp::interp__builtin_stdc_memreverse8(), isUserWritingOffTheEnd(), and toRValue().
|
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(), enumerateData(), clang::interp::lvalFields(), clang::interp::RunDestructors(), and clang::interp::zeroAll().
|
inline |
Checks if the descriptor is of a dynamic allocation.
Definition at line 282 of file Descriptor.h.
References getDynAllocKind(), and clang::None.
Referenced by getDataType().
|
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(), computeFullDescSize(), clang::interp::copyComposite(), clang::interp::DoMemcpy(), dump(), clang::interp::Program::dump(), dumpFull(), enumerateData(), getElemDataSize(), clang::interp::getElemType(), clang::interp::InterpFrame::getParamPointer(), getPrimType(), hasTrivialDtor(), clang::interp::isOrHasPtr(), clang::interp::lvalFields(), clang::interp::RunDestructors(), toRValue(), 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::PtrView::activate(), clang::interp::BitCast(), clang::interp::CheckArrayInitialized(), clang::interp::collectBlocks(), clang::interp::convertBoolVectorToInt(), clang::interp::CopyArray(), clang::interp::copyComposite(), dump(), dumpFull(), enumerateData(), clang::interp::Context::evaluateStrlen(), getElemDataSize(), getElemQualType(), clang::interp::PtrView::getLifetime(), clang::interp::Program::getOrCreateRecord(), getPrimType(), hasTrivialDtor(), initField(), clang::interp::PtrView::initialize(), clang::interp::PtrView::inPrimitiveArray(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_int_unaryop(), clang::interp::interp__builtin_ia32_bmac(), clang::interp::interp__builtin_ia32_extract_vector(), clang::interp::interp__builtin_ia32_extract_vector_masked(), clang::interp::interp__builtin_ia32_insert_subvector(), clang::interp::interp__builtin_ia32_vcvtps2ph(), clang::interp::interp__builtin_ia32_vec_ext(), clang::interp::interp__builtin_nan(), clang::interp::interp__builtin_strlen(), clang::interp::interp__builtin_vector_reduce(), clang::interp::PtrView::isElementInitialized(), clang::interp::PtrView::isInitialized(), clang::interp::isOrHasPtr(), clang::interp::lvalFields(), clang::interp::RunDestructors(), clang::interp::PtrView::setLifeState(), toRValue(), 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::CheckArrayInitialized(), clang::interp::CheckFieldsInitialized(), computeFullDescSize(), clang::interp::copyComposite(), clang::interp::copyRecord(), dump(), dumpFull(), enumerateData(), getElemQualType(), clang::interp::GetField(), clang::interp::GetFieldPop(), getType(), hasTrivialDtor(), initField(), isUnion(), clang::interp::RunDestructors(), clang::interp::runRecordDestructor(), toRValue(), and clang::interp::zeroAll().
| bool Descriptor::isUnion | ( | ) | const |
Checks if the descriptor is of a union.
Definition at line 487 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(), clang::interp::InitElem(), clang::interp::InitElemPop(), clang::interp::PtrView::isOnePastEnd(), and clang::interp::PtrView::isUnknownSizeArray().
|
inline |
Checks if the descriptor is of an array of zero size.
Definition at line 258 of file Descriptor.h.
Referenced by dump(), and clang::interp::PtrView::isZeroSizeArray().
| const BlockCtorFn clang::interp::Descriptor::CtorFn = nullptr |
Storage management methods.
Definition at line 168 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 169 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 152 of file Descriptor.h.
Referenced by clang::interp::CheckArrayInitialized(), clang::interp::collectBlocks(), ctorArrayDesc(), Descriptor(), Descriptor(), Descriptor(), dtorArrayDesc(), dumpFull(), clang::interp::PtrView::getElemRecord(), hasTrivialDtor(), isCompositeArray(), clang::interp::PtrView::isOnePastEnd(), isPrimitiveArray(), and clang::interp::RunDestructors().
Pointer to the record, if block contains records.
Definition at line 150 of file Descriptor.h.
Referenced by clang::interp::IntPointer::baseCast(), clang::interp::CheckArrayInitialized(), clang::interp::checkConstructor(), clang::interp::collectBlocks(), computeFullDescSize(), clang::interp::copyRecord(), ctorRecord(), Descriptor(), destroyBase(), dtorRecord(), dump(), dumpFull(), enumerateData(), getElemQualType(), clang::interp::PtrView::getElemRecord(), clang::interp::Program::getOrCreateRecord(), clang::interp::PtrView::getRecord(), getType(), hasTrivialDtor(), initBase(), initField(), clang::interp::isOrHasPtr(), isPrimitive(), isRecord(), isUnion(), clang::interp::lvalFields(), clang::interp::runRecordDestructor(), and clang::interp::zeroAll().
Flag indicating if the block is an array.
Definition at line 165 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), Descriptor(), clang::interp::PtrView::expand(), getDataType(), clang::interp::PtrView::inArray(), initBase(), initField(), isArray(), isCompositeArray(), isPrimitive(), isPrimitiveArray(), and isRecord().
Flag indicating if the block is mutable.
Definition at line 158 of file Descriptor.h.
Referenced by ctorArrayDesc(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), getElemQualType(), getType(), initBase(), initField(), and clang::interp::PtrView::isConst().
Flag indicating if a field is mutable.
Definition at line 160 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 162 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), and clang::interp::Program::dump().
Definition at line 163 of file Descriptor.h.
Referenced by clang::interp::CheckGlobalLoad(), Descriptor(), Descriptor(), Descriptor(), initField(), and clang::interp::PtrView::isVolatile().
|
staticconstexpr |
Maximum number of bytes to be used for array elements.
Definition at line 146 of file Descriptor.h.
Referenced by clang::interp::CheckArraySize(), clang::interp::Program::createDescriptor(), 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 156 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), getPrimType(), and isPrimitive().