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

Go to the source code of this file.

Functions

static llvm::CallSite emitRTtypeidCall (CodeGenFunction &CGF, llvm::Value *Argument)
 
static bool isDeletingDtor (GlobalDecl GD)
 
static bool hasDefaultCXXMethodCC (ASTContext &Context, const CXXMethodDecl *MD)
 
static void mangleVFTableName (MicrosoftMangleContext &MangleContext, const CXXRecordDecl *RD, const VPtrInfo *VFPtr, SmallString< 256 > &Name)
 
static const CXXRecordDeclgetClassAtVTableLocation (ASTContext &Ctx, const CXXRecordDecl *RD, CharUnits Offset)
 
static const CXXRecordDeclgetClassAtVTableLocation (ASTContext &Ctx, GlobalDecl GD, MicrosoftVTableContext::MethodVFTableLocation &ML)
 
static void emitGlobalDtorWithTLRegDtor (CodeGenFunction &CGF, const VarDecl &VD, llvm::Constant *Dtor, llvm::Constant *Addr)
 
static llvm::GlobalVariable * getInitThreadEpochPtr (CodeGenModule &CGM)
 
static llvm::Constant * getInitThreadHeaderFn (CodeGenModule &CGM)
 
static llvm::Constant * getInitThreadFooterFn (CodeGenModule &CGM)
 
static llvm::Constant * getInitThreadAbortFn (CodeGenModule &CGM)
 
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. More...
 
static void detectAmbiguousBases (SmallVectorImpl< MSRTTIClass > &Classes)
 Find ambiguity among base classes. More...
 
static QualType decomposeTypeForEH (ASTContext &Context, QualType T, bool &IsConst, bool &IsVolatile)
 
static void emitCXXConstructor (CodeGenModule &CGM, const CXXConstructorDecl *ctor, StructorType ctorType)
 
static void emitCXXDestructor (CodeGenModule &CGM, const CXXDestructorDecl *dtor, StructorType dtorType)
 

Function Documentation

static QualType decomposeTypeForEH ( ASTContext Context,
QualType  T,
bool IsConst,
bool IsVolatile 
)
static
static void detectAmbiguousBases ( SmallVectorImpl< MSRTTIClass > &  Classes)
static

Find ambiguity among base classes.

Definition at line 3350 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 const CXXRecordDecl* getClassAtVTableLocation ( ASTContext Ctx,
const CXXRecordDecl RD,
CharUnits  Offset 
)
static
static const CXXRecordDecl* getClassAtVTableLocation ( ASTContext Ctx,
GlobalDecl  GD,
MicrosoftVTableContext::MethodVFTableLocation ML 
)
static
static llvm::Constant* getInitThreadAbortFn ( CodeGenModule CGM)
static
static llvm::GlobalVariable* getInitThreadEpochPtr ( CodeGenModule CGM)
static
static llvm::Constant* getInitThreadFooterFn ( CodeGenModule CGM)
static
static llvm::Constant* getInitThreadHeaderFn ( CodeGenModule CGM)
static
static llvm::GlobalVariable* getTypeInfoVTable ( CodeGenModule CGM)
static
static bool hasDefaultCXXMethodCC ( ASTContext Context,
const CXXMethodDecl MD 
)
static
static bool isDeletingDtor ( GlobalDecl  GD)
static
static void mangleVFTableName ( MicrosoftMangleContext MangleContext,
const CXXRecordDecl RD,
const VPtrInfo VFPtr,
SmallString< 256 > &  Name 
)
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 3341 of file CodeGen/MicrosoftCXXABI.cpp.

References clang::CXXRecordDecl::bases().