clang 19.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, 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, 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, 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 IsUnion, const Descriptor *D, unsigned FieldOffset)
 
static void initBase (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsActive, const Descriptor *D, unsigned FieldOffset, bool IsVirtualBase)
 
static void ctorRecord (Block *B, std::byte *Ptr, bool IsConst, bool IsMutable, bool IsActive, const Descriptor *D)
 
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,
const Descriptor D 
)
static

Definition at line 84 of file Descriptor.cpp.

References D.

◆ ctorArrayTy()

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

Definition at line 42 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,
const Descriptor D 
)
static

Definition at line 198 of file Descriptor.cpp.

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

◆ ctorTy()

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

Definition at line 23 of file Descriptor.cpp.

References clang::T.

◆ dtorArrayDesc()

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

Definition at line 110 of file Descriptor.cpp.

References D.

◆ dtorArrayTy()

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

Definition at line 53 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 208 of file Descriptor.cpp.

References D.

◆ 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 262 of file Descriptor.cpp.

References TYPE_SWITCH.

◆ getCtorPrim()

static BlockCtorFn getCtorPrim ( PrimType  Type)
static

◆ getDtorArrayPrim()

static BlockDtorFn getDtorArrayPrim ( PrimType  Type)
static

Definition at line 267 of file Descriptor.cpp.

References TYPE_SWITCH.

◆ getDtorPrim()

static BlockDtorFn getDtorPrim ( PrimType  Type)
static

◆ getMoveArrayPrim()

static BlockMoveFn getMoveArrayPrim ( PrimType  Type)
static

Definition at line 272 of file Descriptor.cpp.

References TYPE_SWITCH.

◆ getMovePrim()

static BlockMoveFn getMovePrim ( PrimType  Type)
static

Definition at line 258 of file Descriptor.cpp.

References COMPOSITE_TYPE_SWITCH.

◆ initBase()

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

Definition at line 164 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  IsUnion,
const Descriptor D,
unsigned  FieldOffset 
)
static

Definition at line 147 of file Descriptor.cpp.

References D, 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 125 of file Descriptor.cpp.

References D.

◆ moveArrayTy()

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

Definition at line 65 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 221 of file Descriptor.cpp.

References D.

◆ 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.