|
clang 24.0.0git
|
#include "CIRGenCXXABI.h"#include "CIRGenFunction.h"#include "mlir/IR/Block.h"#include "mlir/IR/Location.h"#include "clang/Basic/DiagnosticSema.h"#include "clang/CIR/MissingFeatures.h"#include "llvm/Support/SaveAndRestore.h"Go to the source code of this file.
Namespaces | |
| namespace | clang |
| Top level wrappers for InstallAPI frontend operations. | |
| namespace | clang::CIRGen |
Functions | |
| const EHPersonality & | clang::CIRGen::getEHPersonality (CIRGenModule &cgm, const clang::FunctionDecl *fd) |
Selects the personality function to use for fd, or for the translation unit as a whole when fd is null. | |
| const EHPersonality & | clang::CIRGen::getEHPersonality (CIRGenFunction &cgf) |
| Selects the personality function to use for the function currently being emitted. | |
| static llvm::StringRef | getPersonalityFn (CIRGenModule &cgm, const EHPersonality &personality) |
| static mlir::Value | callBeginCatch (CIRGenFunction &cgf, mlir::Value ehToken, mlir::Type exnPtrTy) |
| static cir::FuncOp | getOrCreateCopyThunk (CIRGenFunction &cgf, const VarDecl &catchParam, cir::PointerType paramAddrType, SourceLocation clangLoc) |
Get or create the catch-init copy thunk for catchParam. | |
| static void | initCatchParam (CIRGenFunction &cgf, CIRGenBuilderTy &builder, mlir::Value ehToken, const VarDecl &catchParam, SourceLocation loc) |
| A "special initializer" callback for initializing a catch parameter during catch initialization. | |
|
static |
Definition at line 298 of file CIRGenException.cpp.
References clang::CIRGen::CIRGenFunction::ehStack, clang::CIRGen::CIRGenFunction::getBuilder(), and clang::CIRGen::NormalAndEHCleanup.
Referenced by clang::CIRGen::CIRGenFunction::emitBeginCatch(), and initCatchParam().
|
static |
Get or create the catch-init copy thunk for catchParam.
The copy thunk has signature void(T*, T*) (where T is the catch parameter type) and contains the normal aggregate emission of the catch parameter's init expression.
The thunk name is keyed off the catch parameter's canonical type mangled name, so a single translation unit emits at most one thunk per catch type.
Definition at line 319 of file CIRGenException.cpp.
References clang::CIRGen::CIRGenFunction::cgm, clang::CIRGen::CIRGenFunction::curFn, clang::CIRGen::AggValueSlot::DoesNotOverlap, clang::CIRGen::CIRGenFunction::emitAggExpr(), clang::OpaqueValueExpr::findInCopyConstruct(), clang::CIRGen::AggValueSlot::forAddr(), clang::CIRGen::CIRGenModule::getBuilder(), clang::CIRGen::CIRGenModule::getCXXABI(), clang::VarDecl::getInit(), clang::CIRGen::CIRGenFunction::getLoc(), clang::CIRGen::CIRGenCXXABI::getMangleContext(), clang::CIRGen::CIRGenModule::getModule(), clang::ValueDecl::getType(), clang::CIRGen::CIRGenModule::insertGlobalSymbol(), clang::CIRGen::AggValueSlot::IsNotAliased, clang::CIRGen::AggValueSlot::IsNotDestructed, clang::CIRGen::CIRGenModule::lookupFuncOp(), clang::CIRGen::CIRGenFunction::makeNaturalAddressForPointer(), clang::CIRGen::CIRGenFunction::makeNaturalAlignAddrLValue(), clang::MangleContext::mangleCanonicalTypeName(), and clang::CharUnits::Zero().
Referenced by initCatchParam().
|
static |
Definition at line 44 of file CIRGenException.cpp.
References clang::CIRGen::CIRGenModule::createRuntimeFunction(), clang::CIRGen::CIRGenModule::getBuilder(), clang::CIRGen::CIRGenBuilderTy::getSInt32Ty(), and clang::CodeGenUtils::EHPersonality::PersonalityFn.
Referenced by clang::CIRGen::CIRGenFunction::emitCXXTryStmt(), clang::CIRGen::CIRGenFunction::emitStartEHSpec(), and getOpaquePersonalityFn().
|
static |
A "special initializer" callback for initializing a catch parameter during catch initialization.
Definition at line 395 of file CIRGenException.cpp.
References callBeginCatch(), clang::cast(), clang::CIRGen::CIRGenFunction::cgm, clang::CIRGen::CIRGenFunction::emitAutoVarAlloca(), clang::CIRGen::CIRGenFunction::emitAutoVarCleanups(), clang::CIRGen::CIRGenModule::getASTContext(), clang::ASTContext::getCanonicalType(), clang::CIRGen::CIRGenFunction::getEvaluationKind(), clang::VarDecl::getInit(), clang::CIRGen::CIRGenFunction::getLoc(), clang::Qualifiers::getObjCLifetime(), getOrCreateCopyThunk(), clang::PointerType::getPointeeType(), clang::CIRGen::Address::getPointer(), clang::CanQual< T >::getQualifiers(), clang::ValueDecl::getType(), cir::CIRBaseBuilderTy::getVoidPtrTy(), clang::isa(), clang::Type::isRecordType(), kind, clang::Qualifiers::OCL_Autoreleasing, clang::Qualifiers::OCL_ExplicitNone, clang::Qualifiers::OCL_None, clang::Qualifiers::OCL_Strong, clang::Qualifiers::OCL_Weak, cir::MissingFeatures::sanitizers(), and cir::TEK_Aggregate.
Referenced by clang::CIRGen::CIRGenFunction::emitBeginCatch().