#include "CGCXXABI.h"
#include "CGCleanup.h"
#include "clang/AST/Attr.h"
usingnamespaceclang;
usingnamespaceCodeGen;
CGCXXABI::~CGCXXABI() { … }
Address CGCXXABI::getThisAddress(CodeGenFunction &CGF) { … }
void CGCXXABI::ErrorUnsupportedABI(CodeGenFunction &CGF, StringRef S) { … }
llvm::Constant *CGCXXABI::GetBogusMemberPointer(QualType T) { … }
llvm::Type *
CGCXXABI::ConvertMemberPointerType(const MemberPointerType *MPT) { … }
CGCallee CGCXXABI::EmitLoadOfMemberFunctionPointer(
CodeGenFunction &CGF, const Expr *E, Address This,
llvm::Value *&ThisPtrForCall,
llvm::Value *MemPtr, const MemberPointerType *MPT) { … }
llvm::Value *
CGCXXABI::EmitMemberDataPointerAddress(CodeGenFunction &CGF, const Expr *E,
Address Base, llvm::Value *MemPtr,
const MemberPointerType *MPT) { … }
llvm::Value *CGCXXABI::EmitMemberPointerConversion(CodeGenFunction &CGF,
const CastExpr *E,
llvm::Value *Src) { … }
llvm::Constant *CGCXXABI::EmitMemberPointerConversion(const CastExpr *E,
llvm::Constant *Src) { … }
llvm::Value *
CGCXXABI::EmitMemberPointerComparison(CodeGenFunction &CGF,
llvm::Value *L,
llvm::Value *R,
const MemberPointerType *MPT,
bool Inequality) { … }
llvm::Value *
CGCXXABI::EmitMemberPointerIsNotNull(CodeGenFunction &CGF,
llvm::Value *MemPtr,
const MemberPointerType *MPT) { … }
llvm::Constant *
CGCXXABI::EmitNullMemberPointer(const MemberPointerType *MPT) { … }
llvm::Constant *CGCXXABI::EmitMemberFunctionPointer(const CXXMethodDecl *MD) { … }
llvm::Constant *CGCXXABI::EmitMemberDataPointer(const MemberPointerType *MPT,
CharUnits offset) { … }
llvm::Constant *CGCXXABI::EmitMemberPointer(const APValue &MP, QualType MPT) { … }
bool CGCXXABI::isZeroInitializable(const MemberPointerType *MPT) { … }
void CGCXXABI::buildThisParam(CodeGenFunction &CGF, FunctionArgList ¶ms) { … }
llvm::Value *CGCXXABI::loadIncomingCXXThis(CodeGenFunction &CGF) { … }
void CGCXXABI::setCXXABIThisValue(CodeGenFunction &CGF, llvm::Value *ThisPtr) { … }
bool CGCXXABI::mayNeedDestruction(const VarDecl *VD) const { … }
bool CGCXXABI::isEmittedWithConstantInitializer(
const VarDecl *VD, bool InspectInitForWeakDef) const { … }
void CGCXXABI::EmitReturnFromThunk(CodeGenFunction &CGF,
RValue RV, QualType ResultType) { … }
CharUnits CGCXXABI::GetArrayCookieSize(const CXXNewExpr *expr) { … }
CharUnits CGCXXABI::getArrayCookieSizeImpl(QualType elementType) { … }
Address CGCXXABI::InitializeArrayCookie(CodeGenFunction &CGF,
Address NewPtr,
llvm::Value *NumElements,
const CXXNewExpr *expr,
QualType ElementType) { … }
bool CGCXXABI::requiresArrayCookie(const CXXDeleteExpr *expr,
QualType elementType) { … }
bool CGCXXABI::requiresArrayCookie(const CXXNewExpr *expr) { … }
void CGCXXABI::ReadArrayCookie(CodeGenFunction &CGF, Address ptr,
const CXXDeleteExpr *expr, QualType eltTy,
llvm::Value *&numElements,
llvm::Value *&allocPtr, CharUnits &cookieSize) { … }
llvm::Value *CGCXXABI::readArrayCookieImpl(CodeGenFunction &CGF,
Address ptr,
CharUnits cookieSize) { … }
llvm::Constant *CGCXXABI::getMemberPointerAdjustment(const CastExpr *E) { … }
llvm::BasicBlock *
CGCXXABI::EmitCtorCompleteObjectHandler(CodeGenFunction &CGF,
const CXXRecordDecl *RD) { … }
void CGCXXABI::setCXXDestructorDLLStorage(llvm::GlobalValue *GV,
const CXXDestructorDecl *Dtor,
CXXDtorType DT) const { … }
llvm::GlobalValue::LinkageTypes CGCXXABI::getCXXDestructorLinkage(
GVALinkage Linkage, const CXXDestructorDecl *Dtor, CXXDtorType DT) const { … }
bool CGCXXABI::NeedsVTTParameter(GlobalDecl GD) { … }
llvm::CallInst *
CGCXXABI::emitTerminateForUnexpectedException(CodeGenFunction &CGF,
llvm::Value *Exn) { … }
CatchTypeInfo CGCXXABI::getCatchAllTypeInfo() { … }
std::vector<CharUnits> CGCXXABI::getVBPtrOffsets(const CXXRecordDecl *RD) { … }
CGCXXABI::AddedStructorArgCounts CGCXXABI::addImplicitConstructorArgs(
CodeGenFunction &CGF, const CXXConstructorDecl *D, CXXCtorType Type,
bool ForVirtualBase, bool Delegating, CallArgList &Args) { … }