clang API Documentation

Functions
CodeGen/MicrosoftCXXABI.cpp File Reference
#include "CGCXXABI.h"
#include "CGVTables.h"
#include "CodeGenModule.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/VTableBuilder.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/IR/CallSite.h"
Include dependency graph for CodeGen/MicrosoftCXXABI.cpp:

Go to the source code of this file.

Functions

static llvm::ValuegetPolymorphicOffset (CodeGenFunction &CGF, const CXXRecordDecl *RD, llvm::Value *Value)
 Gets the offset to the virtual base that contains the vfptr for MS-ABI polymorphic types.
static std::pair< llvm::Value
*, llvm::Value * > 
performBaseAdjustment (CodeGenFunction &CGF, llvm::Value *Value, QualType SrcRecordTy)
static llvm::CallSite emitRTtypeidCall (CodeGenFunction &CGF, llvm::Value *Argument)
static bool isDeletingDtor (GlobalDecl GD)
static void mangleVFTableName (MicrosoftMangleContext &MangleContext, const CXXRecordDecl *RD, const VPtrInfo *VFPtr, SmallString< 256 > &Name)
static void emitGlobalDtorWithTLRegDtor (CodeGenFunction &CGF, const VarDecl &VD, llvm::Constant *Dtor, llvm::Constant *Addr)
static MSInheritanceAttr::Spelling getInheritanceFromMemptr (const MemberPointerType *MPT)
static llvm::GlobalVariable * getTypeInfoVTable (CodeGenModule &CGM)
static void serializeClassHierarchy (SmallVectorImpl< MSRTTIClass > &Classes, const CXXRecordDecl *RD)
 Recursively serializes a class hierarchy in pre-order depth first order.
static void detectAmbiguousBases (SmallVectorImpl< MSRTTIClass > &Classes)
 Find ambiguity among base classes.
static void emitCXXConstructor (CodeGenModule &CGM, const CXXConstructorDecl *ctor, StructorType ctorType)
static void emitCXXDestructor (CodeGenModule &CGM, const CXXDestructorDecl *dtor, StructorType dtorType)

Function Documentation

static void detectAmbiguousBases ( SmallVectorImpl< MSRTTIClass > &  Classes) [static]

Find ambiguity among base classes.

Definition at line 2781 of file CodeGen/MicrosoftCXXABI.cpp.

static void emitCXXConstructor ( CodeGenModule CGM,
const CXXConstructorDecl ctor,
StructorType  ctorType 
) [static]
static void emitCXXDestructor ( CodeGenModule CGM,
const CXXDestructorDecl dtor,
StructorType  dtorType 
) [static]
static void emitGlobalDtorWithTLRegDtor ( CodeGenFunction CGF,
const VarDecl VD,
llvm::Constant *  Dtor,
llvm::Constant *  Addr 
) [static]
static llvm::CallSite emitRTtypeidCall ( CodeGenFunction CGF,
llvm::Value Argument 
) [static]
static MSInheritanceAttr::Spelling getInheritanceFromMemptr ( const MemberPointerType MPT) [static]
static llvm::Value* getPolymorphicOffset ( CodeGenFunction CGF,
const CXXRecordDecl RD,
llvm::Value Value 
) [static]
static llvm::GlobalVariable* getTypeInfoVTable ( CodeGenModule CGM) [static]
static bool isDeletingDtor ( GlobalDecl  GD) [static]
static void mangleVFTableName ( MicrosoftMangleContext MangleContext,
const CXXRecordDecl RD,
const VPtrInfo VFPtr,
SmallString< 256 > &  Name 
) [static]
static std::pair<llvm::Value *, llvm::Value *> performBaseAdjustment ( CodeGenFunction CGF,
llvm::Value Value,
QualType  SrcRecordTy 
) [static]
static void serializeClassHierarchy ( SmallVectorImpl< MSRTTIClass > &  Classes,
const CXXRecordDecl RD 
) [static]

Recursively serializes a class hierarchy in pre-order depth first order.

Definition at line 2772 of file CodeGen/MicrosoftCXXABI.cpp.

References clang::CXXRecordDecl::bases().