clang 20.0.0git
Functions
Descriptor.cpp File Reference
#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"

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 *, 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 *, 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, 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, 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 83 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 194 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 24 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 215 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 209 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 113 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 226 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 30 of file Descriptor.cpp.

References clang::T.

Referenced by emitGlobalDtorWithCXAAtExit().

◆ getCtorArrayPrim()

static BlockCtorFn getCtorArrayPrim ( PrimType  Type)
static

Definition at line 297 of file Descriptor.cpp.

References TYPE_SWITCH.

◆ getCtorPrim()

static BlockCtorFn getCtorPrim ( PrimType  Type)
static

◆ getDtorArrayPrim()

static BlockDtorFn getDtorArrayPrim ( PrimType  Type)
static

Definition at line 302 of file Descriptor.cpp.

References TYPE_SWITCH.

◆ getDtorPrim()

static BlockDtorFn getDtorPrim ( PrimType  Type)
static

◆ getMoveArrayPrim()

static BlockMoveFn getMoveArrayPrim ( PrimType  Type)
static

Definition at line 307 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 168 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 150 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,
std::byte *  Src,
std::byte *  Dst,
const Descriptor D 
)
static

Definition at line 128 of file Descriptor.cpp.

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

◆ moveArrayTy()

template<typename T >
static void moveArrayTy ( Block ,
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,
std::byte *  Src,
std::byte *  Dst,
const Descriptor D 
)
static

Definition at line 235 of file Descriptor.cpp.

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

◆ moveTy()

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

Definition at line 35 of file Descriptor.cpp.

References clang::T.