|
clang 22.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 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 121 of file Descriptor.h.
| using clang::interp::Descriptor::MetadataSize = std::optional<unsigned> |
Definition at line 142 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 285 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 298 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 312 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 324 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 339 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 350 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 362 of file Descriptor.cpp.
References ElemRecord, false, IsConst, IsMutable, IsTemporary, clang::nullptr, and true.
|
inline |
Definition at line 209 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 210 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 221 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::Pointer::toRValue().
|
inline |
Definition at line 225 of file Descriptor.h.
References asDecl().
|
inline |
Definition at line 213 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 217 of file Descriptor.h.
References asDecl().
Referenced by clang::interp::CheckConstant(), clang::interp::CheckExtern(), clang::interp::CheckWeak(), clang::interp::DiagnoseUninitialized(), clang::interp::GetDynamicDecl(), and clang::interp::interp__builtin_is_within_lifetime().
| LLVM_DUMP_METHOD void Descriptor::dump | ( | ) | const |
Definition at line 395 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 400 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 432 of file Disasm.cpp.
References dump(), ElemDesc, ElemRecord, getAllocSize(), getElemSize(), getMetadataSize(), getNumElems(), getPrimType(), getSize(), clang::Indent(), isCompositeArray(), isPrimitive(), isPrimitiveArray(), isRecord(), and primTypeToString().
|
inline |
Returns the allocated size, including metadata.
Definition at line 241 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 412 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 388 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_int_unaryop(), 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 243 of file Descriptor.h.
Referenced by dumpFull(), clang::interp::Pointer::elem(), clang::interp::Pointer::elemSize(), getNumElems(), and clang::interp::interp__builtin_strlen().
| SourceInfo Descriptor::getLoc | ( | ) | const |
Definition at line 444 of file Descriptor.cpp.
| SourceLocation Descriptor::getLocation | ( | ) | const |
Definition at line 436 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 245 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::DynamicAllocator::allocate(), clang::interp::CheckDowncast(), dumpFull(), clang::interp::Block::movePointersTo(), and clang::interp::Pointer::Pointer().
|
inline |
Returns the number of elements stored in the block.
Definition at line 248 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::Pointer::initialize(), clang::interp::Pointer::initializeElement(), clang::interp::interp__builtin_elementwise_abs(), clang::interp::interp__builtin_elementwise_countzeroes(), clang::interp::interp__builtin_elementwise_int_unaryop(), clang::interp::RunDestructors(), and clang::interp::zeroAll().
|
inline |
Definition at line 235 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(), dumpFull(), enumerateData(), clang::interp::Context::evaluateString(), clang::interp::Context::evaluateStrlen(), clang::interp::interp__builtin_ia32_cvt_vec2mask(), clang::interp::interp__builtin_select(), clang::interp::interp__builtin_vec_ext(), clang::interp::interp__builtin_x86_extract_vector(), clang::interp::interp__builtin_x86_extract_vector_masked(), clang::interp::interp__builtin_x86_insert_subvector(), clang::interp::Load(), clang::interp::LoadPop(), and clang::interp::zeroAll().
|
inline |
Returns the size of the object without metadata.
Definition at line 230 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 211 of file Descriptor.h.
Referenced by clang::interp::Pointer::getSource().
| QualType Descriptor::getType | ( | ) | const |
Definition at line 369 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 452 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 265 of file Descriptor.h.
References IsArray.
Referenced by clang::interp::ArrayElemPtr(), clang::interp::ArrayElemPtrPop(), clang::interp::computeFullDescSize(), clang::interp::finishGlobalRecurse(), getElemQualType(), clang::interp::getElemType(), 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 255 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 262 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 253 of file Descriptor.h.
References ElemDesc, and IsArray.
Referenced by clang::interp::collectBlocks(), clang::interp::convertBoolVectorToInt(), clang::interp::copyComposite(), dump(), dumpFull(), enumerateData(), clang::interp::Context::evaluateString(), 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_int_unaryop(), clang::interp::interp__builtin_ia32_vcvtps2ph(), clang::interp::interp__builtin_nan(), clang::interp::interp__builtin_strcmp(), clang::interp::interp__builtin_strlen(), clang::interp::interp__builtin_vec_ext(), clang::interp::interp__builtin_vector_reduce(), clang::interp::interp__builtin_x86_extract_vector(), clang::interp::interp__builtin_x86_extract_vector_masked(), 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 267 of file Descriptor.h.
References ElemRecord, and IsArray.
Referenced by clang::interp::computeFullDescSize(), clang::interp::copyComposite(), clang::interp::copyRecord(), dump(), dumpFull(), enumerateData(), clang::interp::getField(), 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 467 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 259 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 257 of file Descriptor.h.
Referenced by dump().
| const BlockCtorFn clang::interp::Descriptor::CtorFn = nullptr |
Storage management methods.
Definition at line 171 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 172 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 154 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 152 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 144 of file Descriptor.h.
Referenced by clang::interp::Program::createGlobalString().
|
staticconstexpr |
Definition at line 143 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 167 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 160 of file Descriptor.h.
Referenced by clang::interp::DynamicAllocator::allocate(), clang::interp::EvalEmitter::createLocal(), ctorArrayDesc(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), initBase(), initField(), and clang::interp::Pointer::isConst().
Definition at line 168 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 162 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 164 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), Descriptor(), and clang::interp::Program::dump().
Definition at line 165 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 147 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 158 of file Descriptor.h.
Referenced by Descriptor(), Descriptor(), Descriptor(), getPrimType(), and isPrimitive().