clang 22.0.0git
|
#include "CIRGenCXXABI.h"
#include "CIRGenFunction.h"
#include "CIRGenValue.h"
#include "clang/AST/EvaluatedExprVisitor.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/Type.h"
#include "clang/CIR/MissingFeatures.h"
Go to the source code of this file.
Functions | |
static void | emitLValueForAnyFieldInitialization (CIRGenFunction &cgf, CXXCtorInitializer *memberInit, LValue &lhs) |
static void | emitMemberInitializer (CIRGenFunction &cgf, const CXXRecordDecl *classDecl, CXXCtorInitializer *memberInit, const CXXConstructorDecl *constructor, FunctionArgList &args) |
static bool | isInitializerOfDynamicClass (const CXXCtorInitializer *baseInit) |
static bool | baseInitializerUsesThis (ASTContext &c, const Expr *init) |
static Address | applyNonVirtualAndVirtualOffset (mlir::Location loc, CIRGenFunction &cgf, Address addr, CharUnits nonVirtualOffset, mlir::Value virtualOffset, const CXXRecordDecl *derivedClass, const CXXRecordDecl *nearestVBase, mlir::Type baseValueTy={}, bool assumeNotNull=true) |
|
static |
Definition at line 310 of file CIRGenClass.cpp.
Referenced by clang::CIRGen::CIRGenFunction::initializeVTablePointer().
|
static |
Definition at line 148 of file CIRGenClass.cpp.
References c.
Referenced by clang::CIRGen::CIRGenFunction::emitBaseInitializer().
|
static |
Definition at line 58 of file CIRGenClass.cpp.
References clang::IndirectFieldDecl::chain(), clang::CIRGen::CIRGenFunction::emitLValueForFieldInitialization(), clang::CXXCtorInitializer::getAnyMember(), clang::CXXCtorInitializer::getIndirectMember(), clang::NamedDecl::getName(), and clang::CXXCtorInitializer::isIndirectMemberInitializer().
Referenced by emitMemberInitializer().
|
static |
Definition at line 74 of file CIRGenClass.cpp.
References clang::CIRGen::CIRGenFunction::cgm, clang::Ctor_Base, clang::CIRGen::CIRGenFunction::curGD, clang::CIRGen::CIRGenFunction::emitInitializerForField(), emitLValueForAnyFieldInitialization(), clang::CIRGen::CIRGenModule::errorNYI(), cir::MissingFeatures::generateDebugInfo(), clang::CXXCtorInitializer::getAnyMember(), clang::ASTContext::getAsConstantArrayType(), clang::ASTContext::getBaseElementType(), clang::ASTContext::getCanonicalTagType(), clang::CIRGen::CIRGenFunction::getContext(), clang::GlobalDecl::getCtorType(), clang::CXXCtorInitializer::getInit(), clang::CXXCtorInitializer::getSourceRange(), clang::ValueDecl::getType(), clang::CXXCtorInitializer::isAnyMemberInitializer(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), clang::FunctionDecl::isDefaulted(), clang::Type::isRecordType(), clang::CIRGen::CIRGenFunction::loadCXXThis(), clang::CIRGen::CIRGenFunction::makeNaturalAlignAddrLValue(), and clang::CIRGen::CIRGenFunction::makeNaturalAlignPointeeAddrLValue().
Referenced by clang::CIRGen::CIRGenFunction::emitCtorPrologue().
|
static |
Definition at line 122 of file CIRGenClass.cpp.
References clang::Type::castAsCXXRecordDecl(), clang::CXXCtorInitializer::getBaseClass(), and clang::CXXRecordDecl::isDynamicClass().
Referenced by clang::CIRGen::CIRGenFunction::emitCtorPrologue(), and clang::CodeGen::CodeGenFunction::EmitCtorPrologue().