clang  7.0.0svn
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 "/opt/doxygen-docs/src/llvm/tools/clang/lib/CodeGen/CGCall.h"

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

Public Member Functions

 CGCallee ()
 
 CGCallee (const CGCalleeInfo &abstractInfo, llvm::Value *functionPtr)
 Construct a callee. More...
 
bool isBuiltin () const
 
const FunctionDeclgetBuiltinDecl () const
 
unsigned getBuiltinID () const
 
bool isPseudoDestructor () const
 
const CXXPseudoDestructorExprgetPseudoDestructorExpr () const
 
bool isOrdinary () const
 
CGCalleeInfo getAbstractInfo () const
 
llvm::ValuegetFunctionPointer () const
 
void setFunctionPointer (llvm::Value *functionPtr)
 
bool isVirtual () const
 
const CallExprgetVirtualCallExpr () const
 
GlobalDecl getVirtualMethodDecl () const
 
Address getThisAddress () const
 
llvm::FunctionType * getFunctionType () 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 forVirtual (const CallExpr *CE, GlobalDecl MD, Address Addr, llvm::FunctionType *FTy)
 

Detailed Description

All available information about a concrete callee.

Definition at line 67 of file CGCall.h.

Constructor & Destructor Documentation

◆ CGCallee() [1/2]

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

Definition at line 108 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 112 of file CGCall.h.

Member Function Documentation

◆ forBuiltin()

static CGCallee clang::CodeGen::CGCallee::forBuiltin ( unsigned  builtinID,
const FunctionDecl builtinDecl 
)
inlinestatic

Definition at line 120 of file CGCall.h.

References BuiltinInfo.

Referenced by EmitDirectCallee().

◆ forDirect()

static CGCallee clang::CodeGen::CGCallee::forDirect ( llvm::Constant *  functionPtr,
const CGCalleeInfo abstractInfo = CGCalleeInfo() 
)
inlinestatic

◆ forPseudoDestructor()

static CGCallee clang::CodeGen::CGCallee::forPseudoDestructor ( const CXXPseudoDestructorExpr E)
inlinestatic

Definition at line 128 of file CGCall.h.

◆ forVirtual()

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

Definition at line 139 of file CGCall.h.

References VirtualInfo.

◆ getAbstractInfo()

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

Definition at line 172 of file CGCall.h.

◆ getBuiltinDecl()

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

Definition at line 152 of file CGCall.h.

References BuiltinInfo.

◆ getBuiltinID()

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

Definition at line 156 of file CGCall.h.

References BuiltinInfo.

◆ getFunctionPointer()

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

Definition at line 178 of file CGCall.h.

◆ getFunctionType()

llvm::FunctionType* clang::CodeGen::CGCallee::getFunctionType ( ) const
inline

Definition at line 203 of file CGCall.h.

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

◆ getPseudoDestructorExpr()

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

Definition at line 164 of file CGCall.h.

◆ getThisAddress()

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

Definition at line 198 of file CGCall.h.

◆ getVirtualCallExpr()

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

Definition at line 190 of file CGCall.h.

◆ getVirtualMethodDecl()

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

Definition at line 194 of file CGCall.h.

◆ isBuiltin()

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

Definition at line 149 of file CGCall.h.

◆ isOrdinary()

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

Definition at line 169 of file CGCall.h.

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

◆ isPseudoDestructor()

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

Definition at line 161 of file CGCall.h.

◆ isVirtual()

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

Definition at line 187 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 4492 of file CGCall.cpp.

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

◆ setFunctionPointer()

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

Definition at line 182 of file CGCall.h.

Member Data Documentation

◆ AbstractInfo

CGCalleeInfo clang::CodeGen::CGCallee::AbstractInfo

Definition at line 93 of file CGCall.h.

◆ BuiltinInfo

BuiltinInfoStorage clang::CodeGen::CGCallee::BuiltinInfo

Definition at line 94 of file CGCall.h.

Referenced by forBuiltin().

◆ PseudoDestructorInfo

PseudoDestructorInfoStorage clang::CodeGen::CGCallee::PseudoDestructorInfo

Definition at line 95 of file CGCall.h.

◆ VirtualInfo

VirtualInfoStorage clang::CodeGen::CGCallee::VirtualInfo

Definition at line 96 of file CGCall.h.

Referenced by forVirtual().


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