|
clang 24.0.0git
|
#include "Descriptor.h"#include "Char.h"#include "ExprConstShared.h"#include "FixedPoint.h"#include "Floating.h"#include "Integral.h"#include "IntegralAP.h"#include "MemberPointer.h"#include "Pointer.h"#include "PrimType.h"#include "Record.h"#include "Source.h"#include "clang/AST/ExprCXX.h"Go to the source code of this file.
Functions | |
| template<typename T> | |
| static constexpr bool | needsDtor () |
| template<typename T> | |
| static void | dtorTy (std::byte *Ptr, const Descriptor *) |
| template<typename T> | |
| static void | dtorArrayTy (std::byte *Ptr, const Descriptor *D) |
| static void | ctorArrayDesc (std::byte *Ptr, bool IsConst, bool IsMutable, bool IsVolatile, bool IsActive, bool InUnion, const Descriptor *D) |
| static void | dtorArrayDesc (std::byte *Ptr, const Descriptor *D) |
| static void | initField (std::byte *Ptr, bool IsConst, bool IsMutable, bool IsVolatile, bool IsActive, bool IsUnionField, bool InUnion, const Descriptor *D, unsigned FieldOffset) |
| static void | initBase (std::byte *Ptr, bool IsConst, bool IsMutable, bool IsVolatile, bool IsActive, bool InUnion, const Descriptor *D, unsigned FieldOffset, bool IsVirtualBase) |
| static void | ctorRecord (std::byte *Ptr, bool IsConst, bool IsMutable, bool IsVolatile, bool IsActive, bool InUnion, const Descriptor *D) |
| static void | destroyField (std::byte *Ptr, const Descriptor *D, unsigned FieldOffset) |
| static void | destroyBase (std::byte *Ptr, const Descriptor *D, unsigned FieldOffset) |
| static void | dtorRecord (std::byte *Ptr, const Descriptor *D) |
| static bool | needsRecordDtor (const Record *R) |
| Whether a record needs its descriptor dtor function called. | |
| static BlockDtorFn | getDtorPrim (PrimType T) |
| static BlockDtorFn | getDtorArrayPrim (PrimType Type) |
|
static |
Definition at line 48 of file Descriptor.cpp.
References clang::interp::Descriptor::CtorFn, clang::interp::Descriptor::ElemDesc, clang::interp::Fn, clang::interp::Descriptor::getAllocSize(), clang::interp::Descriptor::getNumElems(), clang::interp::Descriptor::IsConst, and clang::interp::Descriptor::IsMutable.
Referenced by clang::interp::Descriptor::Descriptor(), and clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 150 of file Descriptor.cpp.
References clang::interp::Record::bases(), clang::interp::Descriptor::ElemRecord, clang::interp::Record::fields(), initBase(), initField(), clang::interp::Descriptor::isUnion(), V, and clang::interp::Record::virtual_bases().
Referenced by clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 174 of file Descriptor.cpp.
References clang::interp::Record::bases(), destroyBase(), destroyField(), clang::interp::Descriptor::ElemRecord, clang::interp::Record::fields(), and V.
Referenced by destroyBase(), and dtorRecord().
|
static |
Definition at line 168 of file Descriptor.cpp.
References clang::interp::Descriptor::DtorFn, and clang::interp::Fn.
Referenced by destroyBase(), and dtorRecord().
|
static |
Definition at line 80 of file Descriptor.cpp.
References clang::interp::Dtor, clang::interp::Descriptor::DtorFn, clang::interp::Descriptor::ElemDesc, clang::interp::Descriptor::getAllocSize(), and clang::interp::Descriptor::getNumElems().
Referenced by clang::interp::Descriptor::Descriptor(), and clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 36 of file Descriptor.cpp.
References clang::interp::InitMapPtr::deleteInitMap(), clang::interp::Descriptor::getNumElems(), clang::interp::NE(), needsDtor(), and clang::T.
Referenced by getDtorArrayPrim().
|
static |
Definition at line 185 of file Descriptor.cpp.
References clang::interp::Record::bases(), destroyBase(), destroyField(), clang::interp::Descriptor::ElemRecord, clang::interp::Record::fields(), and clang::interp::Record::virtual_bases().
Referenced by clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 30 of file Descriptor.cpp.
References needsDtor(), and clang::T.
Referenced by emitGlobalDtorWithCXAAtExit(), and getDtorPrim().
|
static |
Definition at line 287 of file Descriptor.cpp.
References dtorArrayTy(), and TYPE_SWITCH.
Referenced by clang::interp::Descriptor::Descriptor(), and clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 213 of file Descriptor.cpp.
References dtorTy(), clang::interp::PT_MemberPtr, clang::interp::PT_Ptr, and clang::T.
Referenced by clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 122 of file Descriptor.cpp.
References clang::interp::Record::bases(), clang::interp::Descriptor::ElemRecord, clang::interp::Record::fields(), initBase(), initField(), clang::interp::Descriptor::IsArray, clang::interp::Descriptor::IsConst, clang::interp::Descriptor::IsMutable, clang::interp::Record::isUnion(), clang::interp::InlineDescriptor::Offset, and V.
Referenced by ctorRecord(), and initBase().
|
static |
Definition at line 97 of file Descriptor.cpp.
References clang::interp::Descriptor::CtorFn, clang::interp::Fn, clang::interp::Descriptor::IsArray, clang::interp::Descriptor::IsConst, clang::interp::Descriptor::IsMutable, clang::interp::Descriptor::isPrimitiveArray(), clang::interp::Descriptor::isUnion(), clang::interp::Descriptor::IsVolatile, clang::interp::NotStarted, clang::interp::InlineDescriptor::Offset, and clang::interp::Started.
Referenced by ctorRecord(), and initBase().
|
staticconstexpr |
Definition at line 26 of file Descriptor.cpp.
Referenced by clang::CIRGen::CIRGenFunction::addInitializerToStaticVarDecl(), dtorArrayTy(), dtorTy(), clang::CIRGen::CIRGenFunction::emitAutoVarAlloca(), and clang::CIRGen::CIRGenModule::emitCXXSpecialVarDeclInit().
Whether a record needs its descriptor dtor function called.
Definition at line 195 of file Descriptor.cpp.
References V.
Referenced by clang::interp::Descriptor::Descriptor().