clang 22.0.0git
CIRGenItaniumCXXABI.cpp File Reference
#include "CIRGenCXXABI.h"
#include "CIRGenFunction.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/GlobalDecl.h"
#include "clang/AST/VTableBuilder.h"
#include "clang/CIR/MissingFeatures.h"
#include "llvm/Support/ErrorHandling.h"
#include "clang/Basic/OpenCLImageTypes.def"
#include "clang/Basic/OpenCLExtensionTypes.def"
#include "clang/Basic/AArch64ACLETypes.def"
#include "clang/Basic/PPCTypes.def"
#include "clang/Basic/RISCVVTypes.def"
#include "clang/Basic/AMDGPUTypes.def"
#include "clang/AST/BuiltinTypes.def"
#include "clang/AST/TypeNodes.inc"

Go to the source code of this file.

Macros

#define IMAGE_TYPE(ImgType, Id, SingletonId, Access, Suffix)
#define EXT_OPAQUE_TYPE(ExtType, Id, Ext)
#define SVE_TYPE(Name, Id, SingletonId)
#define PPC_VECTOR_TYPE(Name, Id, Size)
#define RVV_TYPE(Name, Id, SingletonId)
#define AMDGPU_TYPE(Name, Id, SingletonId, Width, Align)
#define BUILTIN_TYPE(Id, SingletonId)
#define PLACEHOLDER_TYPE(Id, SingletonId)
#define TYPE(Class, Base)
#define ABSTRACT_TYPE(Class, Base)
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base)
#define NON_CANONICAL_TYPE(Class, Base)
#define DEPENDENT_TYPE(Class, Base)
#define TYPE(Class, Base)
#define ABSTRACT_TYPE(Class, Base)
#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE(Class, Base)
#define NON_CANONICAL_TYPE(Class, Base)
#define DEPENDENT_TYPE(Class, Base)

Functions

static StructorCIRGen getCIRGenToUse (CIRGenModule &cgm, const CXXMethodDecl *md)
static void emitConstructorDestructorAlias (CIRGenModule &cgm, GlobalDecl aliasDecl, GlobalDecl targetDecl)
static cir::GlobalLinkageKind getTypeInfoLinkage (CIRGenModule &cgm, QualType ty)
 Return the linkage that the type info and type info name constants should have for the given type.
static void insertThrowAndSplit (mlir::OpBuilder &builder, mlir::Location loc, mlir::Value exceptionPtr={}, mlir::FlatSymbolRefAttr typeInfo={}, mlir::FlatSymbolRefAttr dtor={})
static cir::FuncOp getBadCastFn (CIRGenFunction &cgf)
static CharUnits computeOffsetHint (ASTContext &astContext, const CXXRecordDecl *src, const CXXRecordDecl *dst)
static cir::FuncOp getItaniumDynamicCastFn (CIRGenFunction &cgf)
static Address emitDynamicCastToVoid (CIRGenFunction &cgf, mlir::Location loc, QualType srcRecordTy, Address src)
static cir::DynamicCastInfoAttr emitDynamicCastInfo (CIRGenFunction &cgf, mlir::Location loc, QualType srcRecordTy, QualType destRecordTy)

Macro Definition Documentation

◆ ABSTRACT_TYPE [1/2]

#define ABSTRACT_TYPE ( Class,
Base )

◆ ABSTRACT_TYPE [2/2]

#define ABSTRACT_TYPE ( Class,
Base )

◆ AMDGPU_TYPE

#define AMDGPU_TYPE ( Name,
Id,
SingletonId,
Width,
Align )
Value:
case BuiltinType::Id:

◆ BUILTIN_TYPE

#define BUILTIN_TYPE ( Id,
SingletonId )

◆ DEPENDENT_TYPE [1/2]

#define DEPENDENT_TYPE ( Class,
Base )
Value:
case Type::Class:

◆ DEPENDENT_TYPE [2/2]

#define DEPENDENT_TYPE ( Class,
Base )
Value:
case Type::Class:

◆ EXT_OPAQUE_TYPE

#define EXT_OPAQUE_TYPE ( ExtType,
Id,
Ext )
Value:
case BuiltinType::Id:

◆ IMAGE_TYPE

#define IMAGE_TYPE ( ImgType,
Id,
SingletonId,
Access,
Suffix )
Value:
case BuiltinType::Id:

◆ NON_CANONICAL_TYPE [1/2]

#define NON_CANONICAL_TYPE ( Class,
Base )
Value:
case Type::Class:

◆ NON_CANONICAL_TYPE [2/2]

#define NON_CANONICAL_TYPE ( Class,
Base )
Value:
case Type::Class:

◆ NON_CANONICAL_UNLESS_DEPENDENT_TYPE [1/2]

#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE ( Class,
Base )
Value:
case Type::Class:

◆ NON_CANONICAL_UNLESS_DEPENDENT_TYPE [2/2]

#define NON_CANONICAL_UNLESS_DEPENDENT_TYPE ( Class,
Base )
Value:
case Type::Class:

◆ PLACEHOLDER_TYPE

#define PLACEHOLDER_TYPE ( Id,
SingletonId )
Value:
case BuiltinType::Id:

◆ PPC_VECTOR_TYPE

#define PPC_VECTOR_TYPE ( Name,
Id,
Size )
Value:
case BuiltinType::Id:

◆ RVV_TYPE

#define RVV_TYPE ( Name,
Id,
SingletonId )
Value:
case BuiltinType::Id:

◆ SVE_TYPE

#define SVE_TYPE ( Name,
Id,
SingletonId )
Value:
case BuiltinType::Id:

◆ TYPE [1/2]

#define TYPE ( Class,
Base )

◆ TYPE [2/2]

#define TYPE ( Class,
Base )

Function Documentation

◆ computeOffsetHint()

◆ emitConstructorDestructorAlias()

◆ emitDynamicCastInfo()

◆ emitDynamicCastToVoid()

◆ getBadCastFn()

◆ getCIRGenToUse()

◆ getItaniumDynamicCastFn()

◆ getTypeInfoLinkage()

◆ insertThrowAndSplit()

void insertThrowAndSplit ( mlir::OpBuilder & builder,
mlir::Location loc,
mlir::Value exceptionPtr = {},
mlir::FlatSymbolRefAttr typeInfo = {},
mlir::FlatSymbolRefAttr dtor = {} )
static

Definition at line 1575 of file CIRGenItaniumCXXABI.cpp.