|
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. | |
| 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 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.
| 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 201 of file Descriptor.h.
Referenced by asFieldDecl(), asRecordDecl(), asValueDecl(), asVarDecl(), clang::interp::IntPointer::baseCast(), clang::interp::CheckLiteralType(), dump(), getAs(), getElemQualType(), getLoc(), getLocation(), getType(), clang::interp::PtrView::isField(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 202 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::DynamicAllocator::allocate(), clang::interp::CheckLoad(), CheckTemporary(), clang::interp::CheckVolatile(), dump(), clang::interp::Program::dump(), getDataType(), getElemQualType(), clang::interp::Pointer::getRootExpr(), getType(), clang::interp::Pointer::pointsToLiteral(), clang::interp::Integral< Bits, false >::toAPValue(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 213 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::PtrView::getField(), and toRValue().
|
inline |
Definition at line 217 of file Descriptor.h.
References asDecl().
|
inline |
Definition at line 205 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::CheckDummy(), clang::interp::CheckGlobalLoad(), clang::interp::CheckLocalLoad(), clang::interp::CheckVolatile(), getElemQualType(), getType(), clang::interp::isConstexprUnknown(), clang::interp::Integral< Bits, false >::toAPValue(), and clang::interp::Pointer::toAPValue().
|
inline |
Definition at line 209 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::CheckConstant(), clang::interp::CheckWeak(), clang::interp::diagnoseUninitialized(), clang::interp::GetRefGlobal(), clang::interp::Pointer::getRootVarDecl(), and clang::interp::InterpState::lifetimeStartedInEvaluation().
| LLVM_DUMP_METHOD void Descriptor::dump | ( | ) | const |
Definition at line 429 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 434 of file Disasm.cpp.
References asDecl(), asExpr(), ElemRecord, getNumElems(), getPrimType(), isCompositeArray(), IsConstexprUnknown, isPrimitive(), isPrimitiveArray(), isRecord(), isUnion(), isUnknownSizeArray(), isZeroSizeArray(), and primTypeToString().
Dump descriptor, including all valid offsets.
Definition at line 467 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 237 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::Program::createDescriptor(), clang::interp::ByteCodeEmitter::createLocal(), clang::interp::EvalEmitter::createLocal(), ctorArrayDesc(), Descriptor(), Descriptor(), dtorArrayDesc(), dumpFull(), clang::interp::Program::getOrCreateDummy(), and clang::interp::Program::getOrCreateRecord().
Definition at line 221 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(), getType(), clang::isa(), IsArray, and clang::Normal.
Referenced by clang::interp::CheckNewDeleteForms(), clang::interp::DoBitCastPtr(), clang::interp::evaluateBuiltinObjectSize(), and clang::interp::Pointer::toAPValue().
| 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 506 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_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 239 of file Descriptor.h.
Referenced by dumpFull(), clang::interp::PtrView::elem(), clang::interp::PtrView::elemSize(), and getNumElems().
| SourceInfo Descriptor::getLoc | ( | ) | const |
Definition at line 481 of file Descriptor.cpp.
References asDecl().
| SourceLocation Descriptor::getLocation | ( | ) | const |
Definition at line 473 of file Descriptor.cpp.
References asDecl(), and getLocation().
Referenced by clang::interp::CheckFieldsInitialized(), clang::interp::Pointer::getDeclLoc(), getLocation(), and noteValueLocation().
|
inline |
Returns the number of elements stored in the block.
Definition at line 246 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::RunDestructors(), clang::interp::PtrView::setLifeState(), and clang::interp::zeroAll().
|
inline |
Definition at line 231 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::SetThreeWayComparisonField(), toRValue(), and clang::interp::zeroAll().
|
inline |
Returns the size of the object without metadata.
Definition at line 226 of file Descriptor.h.
References isUnknownSizeArray().
Referenced by clang::interp::AllocCN(), dumpFull(), getNumElems(), clang::interp::Pointer::getSize(), clang::interp::PtrView::getSize(), and clang::interp::PtrView::isOnePastEnd().
|
inline |
Definition at line 203 of file Descriptor.h.
Referenced by clang::interp::Pointer::getSource().
| 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(), and toRValue().
| bool Descriptor::hasTrivialDtor | ( | ) | const |
Whether variables of this descriptor need their destructor called or not.
Definition at line 489 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 263 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(), isUserWritingOffTheEnd(), and toRValue().
|
inline |
Checks if the descriptor is of an array of composites.
Definition at line 253 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::RunDestructors(), and clang::interp::zeroAll().
|
inline |
Checks if the descriptor is of a primitive.
Definition at line 260 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::RunDestructors(), toRValue(), and clang::interp::zeroAll().
|
inline |
Checks if the descriptor is of an array of primitives.
Definition at line 251 of file Descriptor.h.
References ElemDesc, and IsArray.
Referenced by clang::interp::PtrView::activate(), 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::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::Pointer::isInitialized(), clang::interp::PtrView::isInitialized(), clang::interp::isOrHasPtr(), clang::interp::RunDestructors(), toRValue(), and clang::interp::zeroAll().
|
inline |
Checks if the descriptor is of a record.
Definition at line 265 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(), 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 504 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 257 of file Descriptor.h.
Referenced by dump(), getSize(), clang::interp::InitElem(), clang::interp::InitElemPop(), clang::interp::PtrView::isOnePastEnd(), clang::interp::Pointer::isUnknownSizeArray(), and clang::interp::PtrView::isUnknownSizeArray().
|
inline |
Checks if the descriptor is of an array of zero size.
Definition at line 255 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 165 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 166 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 148 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 146 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(), clang::interp::isOrHasPtr(), isPrimitive(), isRecord(), isUnion(), clang::interp::runRecordDestructor(), and clang::interp::zeroAll().
Flag indicating if the block is an array.
Definition at line 161 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 154 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::CheckLocalLoad(), clang::interp::EvalEmitter::createLocal(), ctorArrayDesc(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), getElemQualType(), getType(), initBase(), initField(), and clang::interp::PtrView::isConst().
Definition at line 162 of file Descriptor.h.
Referenced by clang::interp::Compiler< Emitter >::allocateLocal(), clang::interp::Compiler< Emitter >::allocateLocalPrimitive(), dump(), clang::interp::Program::getOrCreateDummy(), clang::interp::isConstexprUnknown(), and clang::interp::Pointer::isConstexprUnknown().
Flag indicating if a field is mutable.
Definition at line 156 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 158 of file Descriptor.h.
Referenced by clang::interp::CheckLocalLoad(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), and clang::interp::Program::dump().
Definition at line 159 of file Descriptor.h.
Referenced by clang::interp::CheckGlobalLoad(), clang::interp::CheckLocalLoad(), Descriptor(), Descriptor(), Descriptor(), initField(), and clang::interp::Pointer::isVolatile().
|
staticconstexpr |
Maximum number of bytes to be used for array elements.
Definition at line 142 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 152 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), getPrimType(), and isPrimitive().