|
clang 22.0.0git
|
#include "LoweringPrepareCXXABI.h"#include "mlir/IR/BuiltinAttributes.h"#include "mlir/IR/Value.h"#include "mlir/IR/ValueRange.h"#include "clang/Basic/TargetInfo.h"#include "clang/CIR/Dialect/Builder/CIRBaseBuilder.h"#include "clang/CIR/Dialect/IR/CIRAttrs.h"#include "clang/CIR/Dialect/IR/CIRDataLayout.h"#include "clang/CIR/Dialect/IR/CIRDialect.h"#include "clang/CIR/MissingFeatures.h"Go to the source code of this file.
Classes | |
| class | LoweringPrepareItaniumCXXABI |
Functions | |
| static void | buildBadCastCall (cir::CIRBaseBuilderTy &builder, mlir::Location loc, mlir::FlatSymbolRefAttr badCastFuncRef) |
| static mlir::Value | buildDynamicCastAfterNullCheck (cir::CIRBaseBuilderTy &builder, cir::DynamicCastOp op) |
| static mlir::Value | buildDynamicCastToVoidAfterNullCheck (cir::CIRBaseBuilderTy &builder, clang::ASTContext &astCtx, cir::DynamicCastOp op) |
|
static |
Definition at line 37 of file LoweringPrepareItaniumCXXABI.cpp.
References cir::CIRBaseBuilderTy::createCallOp(), and cir::MissingFeatures::opFuncNoReturn().
Referenced by buildDynamicCastAfterNullCheck().
|
static |
C++ [expr.dynamic.cast]p9: A failed cast to reference type throws std::bad_cast
Definition at line 48 of file LoweringPrepareItaniumCXXABI.cpp.
References cir::MissingFeatures::addressSpace(), buildBadCastCall(), cir::CIRBaseBuilderTy::createBitcast(), cir::CIRBaseBuilderTy::createCallOp(), cir::CIRBaseBuilderTy::createPtrIsNull(), cir::CIRBaseBuilderTy::getConstant(), and cir::CIRBaseBuilderTy::getVoidPtrTy().
Referenced by LoweringPrepareItaniumCXXABI::lowerDynamicCast().
|
static |
Definition at line 93 of file LoweringPrepareItaniumCXXABI.cpp.
References cir::MissingFeatures::addressSpace(), cir::CIRBaseBuilderTy::createAlignedLoad(), cir::CIRBaseBuilderTy::createBitcast(), cir::CIRBaseBuilderTy::createLoad(), clang::Default, cir::CIRBaseBuilderTy::getPointerTo(), clang::TargetInfo::getPtrDiffType(), cir::CIRBaseBuilderTy::getSignedInt(), cir::CIRBaseBuilderTy::getSIntNTy(), clang::ASTContext::getTargetInfo(), cir::CIRBaseBuilderTy::getUIntNTy(), cir::CIRBaseBuilderTy::getVoidPtrTy(), and clang::TargetInfo::isTypeSigned().
Referenced by LoweringPrepareItaniumCXXABI::lowerDynamicCast().