clang 10.0.0git

Classes | Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::CGCallee Class Reference

All available information about a concrete callee. More...

`#include "/work/www-prereleases/10.0.0/rc1/docsbuild/clang/lib/CodeGen/CGCall.h"`

Collaboration diagram for clang::CodeGen::CGCallee:
[legend]

## Public Member Functions
| CGCallee ()
| CGCallee (const CGCalleeInfo &abstractInfo, llvm::Value *functionPtr)
| Construct a callee. More...
bool | isBuiltin () const
const FunctionDecl * | getBuiltinDecl () const
unsigned | getBuiltinID () const
bool | isPseudoDestructor () const
const CXXPseudoDestructorExpr * | getPseudoDestructorExpr () const
bool | isOrdinary () const
CGCalleeInfo | getAbstractInfo () const
llvm::Value * | getFunctionPointer () const
void | setFunctionPointer (llvm::Value *functionPtr)
bool | isVirtual () const
const CallExpr * | getVirtualCallExpr () const
GlobalDecl | getVirtualMethodDecl () const
Address | getThisAddress () const
llvm::FunctionType * | getVirtualFunctionType () const
CGCallee | prepareConcreteCallee (CodeGenFunction &CGF) const
| If this is a delayed callee computation of some sort, prepare a concrete callee. More...

## Static Public Member Functions
static CGCallee | forBuiltin (unsigned builtinID, const FunctionDecl *builtinDecl)
static CGCallee | forPseudoDestructor (const CXXPseudoDestructorExpr *E)
static CGCallee | forDirect (llvm::Constant *functionPtr, const CGCalleeInfo &abstractInfo=CGCalleeInfo())
static CGCallee | forDirect (llvm::FunctionCallee functionPtr, const CGCalleeInfo &abstractInfo=CGCalleeInfo())
static CGCallee | forVirtual (const CallExpr *CE, GlobalDecl MD, Address Addr, llvm::FunctionType *FTy)

## Detailed Description

All available information about a concrete callee.

Definition at line 66 of file CGCall.h.

## Constructor & Destructor Documentation

## ◆ CGCallee() [1/2]

clang::CodeGen::CGCallee::CGCallee | ( |  | ) |
| inline

Definition at line 107 of file CGCall.h.

## ◆ CGCallee() [2/2]

clang::CodeGen::CGCallee::CGCallee | ( | const CGCalleeInfo & | abstractInfo,
|  | llvm::Value * | functionPtr
| ) |  |
| inline

Construct a callee.

Call this constructor directly when this isn't a direct call.

Definition at line 111 of file CGCall.h.

## Member Function Documentation

## ◆ forBuiltin()

static CGCallee clang::CodeGen::CGCallee::forBuiltin | ( | unsigned | builtinID,
|  | const FunctionDecl * | builtinDecl
| ) |  |
| inline static

Definition at line 119 of file CGCall.h.

References BuiltinInfo.

Referenced by EmitDirectCallee().

## ◆ forDirect() [1/2]

static CGCallee clang::CodeGen::CGCallee::forDirect | ( | llvm::Constant * | functionPtr,
|  | const CGCalleeInfo & | abstractInfo = `CGCalleeInfo()`
| ) |  |
| inline static

Definition at line 133 of file CGCall.h.

Referenced by decomposeTypeForEH(), emitAtomicLibcall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(), EmitDirectCallee(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), emitLibraryCall(), clang::CodeGen::CGCXXABI::EmitLoadOfMemberFunctionPointer(), EmitNewDeleteCall(), emitStructSetterCall(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), hasDefaultCXXMethodCC(), and isWeakLinkedClass().

## ◆ forDirect() [2/2]

static CGCallee clang::CodeGen::CGCallee::forDirect | ( | llvm::FunctionCallee | functionPtr,
|  | const CGCalleeInfo & | abstractInfo = `CGCalleeInfo()`
| ) |  |
| inline static

Definition at line 138 of file CGCall.h.

## ◆ forPseudoDestructor()

static CGCallee clang::CodeGen::CGCallee::forPseudoDestructor | ( | const CXXPseudoDestructorExpr * | E | ) |
| inline static

Definition at line 127 of file CGCall.h.

References PseudoDestructorInfo.

Referenced by clang::CodeGen::CodeGenFunction::EmitCallee().

## ◆ forVirtual()

static CGCallee clang::CodeGen::CGCallee::forVirtual | ( | const CallExpr * | CE,
|  | GlobalDecl | MD,
|  | Address | Addr,
|  | llvm::FunctionType * | FTy
| ) |  |
| inline static

Definition at line 143 of file CGCall.h.

References VirtualInfo.

## ◆ getAbstractInfo()

CGCalleeInfo clang::CodeGen::CGCallee::getAbstractInfo | ( |  | ) | const
| inline

Definition at line 176 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCall().

## ◆ getBuiltinDecl()

const FunctionDecl* clang::CodeGen::CGCallee::getBuiltinDecl | ( |  | ) | const
| inline

Definition at line 156 of file CGCall.h.

References BuiltinInfo.

Referenced by clang::CodeGen::CodeGenFunction::EmitCallExpr().

## ◆ getBuiltinID()

unsigned clang::CodeGen::CGCallee::getBuiltinID | ( |  | ) | const
| inline

Definition at line 160 of file CGCall.h.

References BuiltinInfo.

Referenced by clang::CodeGen::CodeGenFunction::EmitCallExpr().

## ◆ getFunctionPointer()

llvm::Value* clang::CodeGen::CGCallee::getFunctionPointer | ( |  | ) | const
| inline

Definition at line 182 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCall().

## ◆ getPseudoDestructorExpr()

const CXXPseudoDestructorExpr* clang::CodeGen::CGCallee::getPseudoDestructorExpr | ( |  | ) | const
| inline

Definition at line 168 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCallExpr().

## ◆ getThisAddress()

Address clang::CodeGen::CGCallee::getThisAddress | ( |  | ) | const
| inline

Definition at line 202 of file CGCall.h.

## ◆ getVirtualCallExpr()

const CallExpr* clang::CodeGen::CGCallee::getVirtualCallExpr | ( |  | ) | const
| inline

Definition at line 194 of file CGCall.h.

## ◆ getVirtualFunctionType()

llvm::FunctionType* clang::CodeGen::CGCallee::getVirtualFunctionType | ( |  | ) | const
| inline

Definition at line 206 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCall().

## ◆ getVirtualMethodDecl()

GlobalDecl clang::CodeGen::CGCallee::getVirtualMethodDecl | ( |  | ) | const
| inline

Definition at line 198 of file CGCall.h.

## ◆ isBuiltin()

bool clang::CodeGen::CGCallee::isBuiltin | ( |  | ) | const
| inline

Definition at line 153 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCallExpr().

## ◆ isOrdinary()

bool clang::CodeGen::CGCallee::isOrdinary | ( |  | ) | const
| inline

Definition at line 173 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCall().

## ◆ isPseudoDestructor()

bool clang::CodeGen::CGCallee::isPseudoDestructor | ( |  | ) | const
| inline

Definition at line 165 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCallExpr().

## ◆ isVirtual()

bool clang::CodeGen::CGCallee::isVirtual | ( |  | ) | const
| inline

Definition at line 191 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCall().

## ◆ prepareConcreteCallee()

CGCallee CGCallee::prepareConcreteCallee | ( | CodeGenFunction & | CGF | ) | const

If this is a delayed callee computation of some sort, prepare a concrete callee.

Definition at line 4649 of file CGCall.cpp.

References clang::CodeGen::CodeGenFunction::CGM, clang::CallExpr::getBeginLoc(), clang::CodeGen::CodeGenModule::getCXXABI(), and clang::CodeGen::CGCXXABI::getVirtualFunctionPointer().

## ◆ setFunctionPointer()

void clang::CodeGen::CGCallee::setFunctionPointer | ( | llvm::Value * | functionPtr | ) |
| inline

Definition at line 186 of file CGCall.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCall().

## Member Data Documentation

## ◆ AbstractInfo

CGCalleeInfo clang::CodeGen::CGCallee::AbstractInfo

Definition at line 92 of file CGCall.h.

## ◆ BuiltinInfo

BuiltinInfoStorage clang::CodeGen::CGCallee::BuiltinInfo

Definition at line 93 of file CGCall.h.

Referenced by forBuiltin().

## ◆ PseudoDestructorInfo

PseudoDestructorInfoStorage clang::CodeGen::CGCallee::PseudoDestructorInfo

Definition at line 94 of file CGCall.h.

Referenced by forPseudoDestructor().

## ◆ VirtualInfo

VirtualInfoStorage clang::CodeGen::CGCallee::VirtualInfo

Definition at line 95 of file CGCall.h.

Referenced by forVirtual().

The documentation for this class was generated from the following files:

- lib/CodeGen/CGCall.h
- lib/CodeGen/CGCall.cpp