clang 22.0.0git
|
#include "Descriptor.h"
#include "Boolean.h"
#include "FixedPoint.h"
#include "Floating.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 | needsCtor () |
template<typename T> | |
static void | ctorTy (Block *, std::byte *Ptr, bool, bool, bool, bool, bool, const Descriptor *) |
template<typename T> | |
static void | dtorTy (Block *, std::byte *Ptr, const Descriptor *) |
template<typename T> | |
static void | ctorArrayTy (Block *, std::byte *Ptr, bool, bool, bool, bool, bool, const Descriptor *D) |
template<typename T> | |
static void | dtorArrayTy (Block *, std::byte *Ptr, const Descriptor *D) |
static void | ctorArrayDesc (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsVolatile, bool IsActive, bool InUnion, const Descriptor *D) |
static void | dtorArrayDesc (Block *B, std::byte *Ptr, const Descriptor *D) |
static void | initField (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsVolatile, bool IsActive, bool IsUnionField, bool InUnion, const Descriptor *D, unsigned FieldOffset) |
static void | initBase (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsVolatile, bool IsActive, bool InUnion, const Descriptor *D, unsigned FieldOffset, bool IsVirtualBase) |
static void | ctorRecord (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsVolatile, bool IsActive, bool InUnion, const Descriptor *D) |
static void | destroyField (Block *B, std::byte *Ptr, const Descriptor *D, unsigned FieldOffset) |
static void | destroyBase (Block *B, std::byte *Ptr, const Descriptor *D, unsigned FieldOffset) |
static void | dtorRecord (Block *B, std::byte *Ptr, const Descriptor *D) |
static bool | needsRecordDtor (const Record *R) |
Whether a record needs its descriptor dtor function called. | |
static BlockCtorFn | getCtorPrim (PrimType T) |
static BlockDtorFn | getDtorPrim (PrimType T) |
static BlockCtorFn | getCtorArrayPrim (PrimType Type) |
static BlockDtorFn | getDtorArrayPrim (PrimType Type) |
|
static |
Definition at line 80 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 53 of file Descriptor.cpp.
References clang::interp::Descriptor::getNumElems(), clang::interp::NE(), needsCtor(), and clang::T.
Referenced by getCtorArrayPrim().
|
static |
Definition at line 177 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 40 of file Descriptor.cpp.
References needsCtor(), and clang::T.
Referenced by getCtorPrim().
|
static |
Definition at line 201 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 195 of file Descriptor.cpp.
References clang::interp::Descriptor::DtorFn, and clang::interp::Fn.
Referenced by destroyBase(), and dtorRecord().
|
static |
Definition at line 111 of file Descriptor.cpp.
References 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 66 of file Descriptor.cpp.
References clang::interp::Descriptor::getNumElems(), clang::interp::NE(), needsCtor(), and clang::T.
Referenced by getDtorArrayPrim().
|
static |
Definition at line 212 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 47 of file Descriptor.cpp.
References needsCtor(), and clang::T.
Referenced by emitGlobalDtorWithCXAAtExit(), and getDtorPrim().
|
static |
Definition at line 276 of file Descriptor.cpp.
References ctorArrayTy(), and TYPE_SWITCH.
Referenced by clang::interp::Descriptor::Descriptor(), and clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 240 of file Descriptor.cpp.
References ctorTy(), clang::interp::PT_Float, clang::interp::PT_IntAP, clang::interp::PT_IntAPS, clang::interp::PT_MemberPtr, clang::interp::PT_Ptr, and clang::T.
Referenced by clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 281 of file Descriptor.cpp.
References dtorArrayTy(), and TYPE_SWITCH.
Referenced by clang::interp::Descriptor::Descriptor(), and clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 258 of file Descriptor.cpp.
References dtorTy(), clang::interp::PT_Float, clang::interp::PT_IntAP, clang::interp::PT_IntAPS, clang::interp::PT_MemberPtr, clang::interp::PT_Ptr, and clang::T.
Referenced by clang::interp::Descriptor::Descriptor().
|
static |
Definition at line 149 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 128 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::isUnion(), clang::interp::Descriptor::IsVolatile, and clang::interp::InlineDescriptor::Offset.
Referenced by ctorRecord(), and initBase().
|
staticconstexpr |
Definition at line 24 of file Descriptor.cpp.
Referenced by ctorArrayTy(), ctorTy(), dtorArrayTy(), and dtorTy().
Whether a record needs its descriptor dtor function called.
Definition at line 222 of file Descriptor.cpp.
References clang::interp::Record::bases(), clang::interp::Record::fields(), V, and clang::interp::Record::virtual_bases().
Referenced by clang::interp::Descriptor::Descriptor().