clang  6.0.0svn
Functions
CGVTables.cpp File Reference
#include "CGCXXABI.h"
#include "CodeGenFunction.h"
#include "CodeGenModule.h"
#include "clang/CodeGen/ConstantInitBuilder.h"
#include "clang/AST/CXXInheritance.h"
#include "clang/AST/RecordLayout.h"
#include "clang/CodeGen/CGFunctionInfo.h"
#include "clang/Frontend/CodeGenOptions.h"
#include "llvm/Support/Format.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include <algorithm>
#include <cstdio>
Include dependency graph for CGVTables.cpp:

Go to the source code of this file.

Functions

static void setThunkVisibility (CodeGenModule &CGM, const CXXMethodDecl *MD, const ThunkInfo &Thunk, llvm::Function *Fn)
 
static void setThunkProperties (CodeGenModule &CGM, const ThunkInfo &Thunk, llvm::Function *ThunkFn, bool ForVTable, GlobalDecl GD)
 
static bool similar (const ABIArgInfo &infoL, CanQualType typeL, const ABIArgInfo &infoR, CanQualType typeR)
 
static RValue PerformReturnAdjustment (CodeGenFunction &CGF, QualType ResultType, RValue RV, const ThunkInfo &Thunk)
 
static bool shouldEmitAvailableExternallyVTable (const CodeGenModule &CGM, const CXXRecordDecl *RD)
 
static bool shouldEmitVTableAtEndOfTranslationUnit (CodeGenModule &CGM, const CXXRecordDecl *RD)
 Given that we're currently at the end of the translation unit, and we've emitted a reference to the vtable for this class, should we define that vtable? More...
 

Function Documentation

◆ PerformReturnAdjustment()

static RValue PerformReturnAdjustment ( CodeGenFunction CGF,
QualType  ResultType,
RValue  RV,
const ThunkInfo Thunk 
)
static

◆ setThunkProperties()

static void setThunkProperties ( CodeGenModule CGM,
const ThunkInfo Thunk,
llvm::Function *  ThunkFn,
bool  ForVTable,
GlobalDecl  GD 
)
static

◆ setThunkVisibility()

static void setThunkVisibility ( CodeGenModule CGM,
const CXXMethodDecl MD,
const ThunkInfo Thunk,
llvm::Function *  Fn 
)
static

Definition at line 51 of file CGVTables.cpp.

References clang::CodeGen::CodeGenModule::setGlobalVisibility().

Referenced by setThunkProperties().

◆ shouldEmitAvailableExternallyVTable()

static bool shouldEmitAvailableExternallyVTable ( const CodeGenModule CGM,
const CXXRecordDecl RD 
)
static

◆ shouldEmitVTableAtEndOfTranslationUnit()

static bool shouldEmitVTableAtEndOfTranslationUnit ( CodeGenModule CGM,
const CXXRecordDecl RD 
)
static

Given that we're currently at the end of the translation unit, and we've emitted a reference to the vtable for this class, should we define that vtable?

Definition at line 881 of file CGVTables.cpp.

References clang::CodeGen::CodeGenModule::getVTables(), clang::CodeGen::CodeGenVTables::isVTableExternal(), and shouldEmitAvailableExternallyVTable().

◆ similar()

static bool similar ( const ABIArgInfo infoL,
CanQualType  typeL,
const ABIArgInfo infoR,
CanQualType  typeR 
)
static