clang 20.0.0git
Functions
Descriptor.cpp File Reference
#include "Descriptor.h"
#include "Boolean.h"
#include "Floating.h"
#include "FunctionPointer.h"
#include "IntegralAP.h"
#include "MemberPointer.h"
#include "Pointer.h"
#include "PrimType.h"
#include "Record.h"

Go to the source code of this file.

Functions

template<typename T >
static void ctorTy (Block *, std::byte *Ptr, bool, bool, bool, bool, const Descriptor *)
 
template<typename T >
static void dtorTy (Block *, std::byte *Ptr, const Descriptor *)
 
template<typename T >
static void moveTy (Block *, const std::byte *Src, std::byte *Dst, const Descriptor *)
 
template<typename T >
static void ctorArrayTy (Block *, std::byte *Ptr, bool, bool, bool, bool, const Descriptor *D)
 
template<typename T >
static void dtorArrayTy (Block *, std::byte *Ptr, const Descriptor *D)
 
template<typename T >
static void moveArrayTy (Block *, const std::byte *Src, std::byte *Dst, const Descriptor *D)
 
static void ctorArrayDesc (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsActive, bool InUnion, const Descriptor *D)
 
static void dtorArrayDesc (Block *B, std::byte *Ptr, const Descriptor *D)
 
static void moveArrayDesc (Block *B, const std::byte *Src, std::byte *Dst, const Descriptor *D)
 
static void initField (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsActive, bool IsUnionField, bool InUnion, const Descriptor *D, unsigned FieldOffset)
 
static void initBase (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsActive, bool InUnion, const Descriptor *D, unsigned FieldOffset, bool IsVirtualBase)
 
static void ctorRecord (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, 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 void moveRecord (Block *B, const std::byte *Src, std::byte *Dst, const Descriptor *D)
 
static BlockCtorFn getCtorPrim (PrimType Type)
 
static BlockDtorFn getDtorPrim (PrimType Type)
 
static BlockMoveFn getMovePrim (PrimType Type)
 
static BlockCtorFn getCtorArrayPrim (PrimType Type)
 
static BlockDtorFn getDtorArrayPrim (PrimType Type)
 
static BlockMoveFn getMoveArrayPrim (PrimType Type)
 

Function Documentation

◆ ctorArrayDesc()

static void ctorArrayDesc ( Block B,
std::byte *  Ptr,
bool  IsConst,
bool  IsMutable,
bool  IsActive,
bool  InUnion,
const Descriptor D 
)
static

Definition at line 85 of file Descriptor.cpp.

References D, and clang::interp::Fn.

◆ ctorArrayTy()

template<typename T >
static void ctorArrayTy ( Block ,
std::byte *  Ptr,
bool  ,
bool  ,
bool  ,
bool  ,
const Descriptor D 
)
static

Definition at line 43 of file Descriptor.cpp.

References D, clang::interp::NE(), and clang::T.

◆ ctorRecord()

static void ctorRecord ( Block B,
std::byte *  Ptr,
bool  IsConst,
bool  IsMutable,
bool  IsActive,
bool  InUnion,
const Descriptor D 
)
static

Definition at line 195 of file Descriptor.cpp.

References D, initBase(), initField(), and V.

◆ ctorTy()

template<typename T >
static void ctorTy ( Block ,
std::byte *  Ptr,
bool  ,
bool  ,
bool  ,
bool  ,
const Descriptor  
)
static

Definition at line 23 of file Descriptor.cpp.

References clang::T.

◆ destroyBase()

static void destroyBase ( Block B,
std::byte *  Ptr,
const Descriptor D,
unsigned  FieldOffset 
)
static

Definition at line 216 of file Descriptor.cpp.

References D, destroyBase(), destroyField(), and V.

Referenced by destroyBase(), and dtorRecord().

◆ destroyField()

static void destroyField ( Block B,
std::byte *  Ptr,
const Descriptor D,
unsigned  FieldOffset 
)
static

Definition at line 210 of file Descriptor.cpp.

References D, and clang::interp::Fn.

Referenced by destroyBase(), and dtorRecord().

◆ dtorArrayDesc()

static void dtorArrayDesc ( Block B,
std::byte *  Ptr,
const Descriptor D 
)
static

Definition at line 114 of file Descriptor.cpp.

References D, and clang::interp::Fn.

◆ dtorArrayTy()

template<typename T >
static void dtorArrayTy ( Block ,
std::byte *  Ptr,
const Descriptor D 
)
static

Definition at line 54 of file Descriptor.cpp.

References D, clang::interp::NE(), and clang::T.

◆ dtorRecord()

static void dtorRecord ( Block B,
std::byte *  Ptr,
const Descriptor D 
)
static

Definition at line 227 of file Descriptor.cpp.

References D, destroyBase(), and destroyField().

◆ dtorTy()

template<typename T >
static void dtorTy ( Block ,
std::byte *  Ptr,
const Descriptor  
)
static

Definition at line 29 of file Descriptor.cpp.

References clang::T.

Referenced by emitGlobalDtorWithCXAAtExit().

◆ getCtorArrayPrim()

static BlockCtorFn getCtorArrayPrim ( PrimType  Type)
static

Definition at line 298 of file Descriptor.cpp.

References TYPE_SWITCH.

◆ getCtorPrim()

static BlockCtorFn getCtorPrim ( PrimType  Type)
static

◆ getDtorArrayPrim()

static BlockDtorFn getDtorArrayPrim ( PrimType  Type)
static

Definition at line 303 of file Descriptor.cpp.

References TYPE_SWITCH.

◆ getDtorPrim()

static BlockDtorFn getDtorPrim ( PrimType  Type)
static

◆ getMoveArrayPrim()

static BlockMoveFn getMoveArrayPrim ( PrimType  Type)
static

Definition at line 308 of file Descriptor.cpp.

References TYPE_SWITCH.

◆ getMovePrim()

static BlockMoveFn getMovePrim ( PrimType  Type)
static

◆ initBase()

static void initBase ( Block B,
std::byte *  Ptr,
bool  IsConst,
bool  IsMutable,
bool  IsActive,
bool  InUnion,
const Descriptor D,
unsigned  FieldOffset,
bool  IsVirtualBase 
)
static

Definition at line 169 of file Descriptor.cpp.

References D, initBase(), initField(), clang::interp::InlineDescriptor::Offset, and V.

Referenced by ctorRecord(), and initBase().

◆ initField()

static void initField ( Block B,
std::byte *  Ptr,
bool  IsConst,
bool  IsMutable,
bool  IsActive,
bool  IsUnionField,
bool  InUnion,
const Descriptor D,
unsigned  FieldOffset 
)
static

Definition at line 151 of file Descriptor.cpp.

References D, clang::interp::Fn, and clang::interp::InlineDescriptor::Offset.

Referenced by ctorRecord(), and initBase().

◆ moveArrayDesc()

static void moveArrayDesc ( Block B,
const std::byte *  Src,
std::byte *  Dst,
const Descriptor D 
)
static

Definition at line 129 of file Descriptor.cpp.

References D, and clang::interp::Fn.

◆ moveArrayTy()

template<typename T >
static void moveArrayTy ( Block ,
const std::byte *  Src,
std::byte *  Dst,
const Descriptor D 
)
static

Definition at line 66 of file Descriptor.cpp.

References D, clang::interp::NE(), and clang::T.

◆ moveRecord()

static void moveRecord ( Block B,
const std::byte *  Src,
std::byte *  Dst,
const Descriptor D 
)
static

Definition at line 236 of file Descriptor.cpp.

References D, and clang::interp::Fn.

◆ moveTy()

template<typename T >
static void moveTy ( Block ,
const std::byte *  Src,
std::byte *  Dst,
const Descriptor  
)
static

Definition at line 34 of file Descriptor.cpp.

References clang::T.