clang 20.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 "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGCall.h"

Public Member Functions

 CGCallee ()
 
 CGCallee (const CGCalleeInfo &abstractInfo, llvm::Value *functionPtr, const CGPointerAuthInfo &pointerAuthInfo=CGPointerAuthInfo())
 Construct a callee.
 
bool isBuiltin () const
 
const FunctionDeclgetBuiltinDecl () const
 
unsigned getBuiltinID () const
 
bool isPseudoDestructor () const
 
const CXXPseudoDestructorExprgetPseudoDestructorExpr () const
 
bool isOrdinary () const
 
CGCalleeInfo getAbstractInfo () const
 
const CGPointerAuthInfogetPointerAuthInfo () const
 
llvm::Value * getFunctionPointer () const
 
void setFunctionPointer (llvm::Value *functionPtr)
 
void setPointerAuthInfo (CGPointerAuthInfo PointerAuth)
 
bool isVirtual () const
 
const CallExprgetVirtualCallExpr () 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.
 

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 63 of file CGCall.h.

Constructor & Destructor Documentation

◆ CGCallee() [1/2]

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

Definition at line 108 of file CGCall.h.

Referenced by forDirect().

◆ CGCallee() [2/2]

clang::CodeGen::CGCallee::CGCallee ( const CGCalleeInfo abstractInfo,
llvm::Value *  functionPtr,
const CGPointerAuthInfo pointerAuthInfo = CGPointerAuthInfo() 
)
inline

Construct a callee.

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

Definition at line 112 of file CGCall.h.

References OrdinaryInfo.

Member Function Documentation

◆ forBuiltin()

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

Definition at line 123 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() 
)
inlinestatic

◆ forDirect() [2/2]

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

Definition at line 142 of file CGCall.h.

References CGCallee().

◆ forPseudoDestructor()

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

Definition at line 131 of file CGCall.h.

References E, and PseudoDestructorInfo.

◆ forVirtual()

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

Definition at line 147 of file CGCall.h.

References VirtualInfo.

◆ getAbstractInfo()

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

Definition at line 180 of file CGCall.h.

References isOrdinary(), isVirtual(), OrdinaryInfo, and VirtualInfo.

◆ getBuiltinDecl()

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

Definition at line 160 of file CGCall.h.

References BuiltinInfo, and isBuiltin().

◆ getBuiltinID()

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

Definition at line 164 of file CGCall.h.

References BuiltinInfo, and isBuiltin().

◆ getFunctionPointer()

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

Definition at line 190 of file CGCall.h.

References isOrdinary().

◆ getPointerAuthInfo()

const CGPointerAuthInfo & clang::CodeGen::CGCallee::getPointerAuthInfo ( ) const
inline

Definition at line 186 of file CGCall.h.

References isOrdinary(), and OrdinaryInfo.

◆ getPseudoDestructorExpr()

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

Definition at line 172 of file CGCall.h.

References isPseudoDestructor(), and PseudoDestructorInfo.

◆ getThisAddress()

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

Definition at line 215 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualCallExpr()

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

Definition at line 207 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualFunctionType()

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

Definition at line 219 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualMethodDecl()

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

Definition at line 211 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ isBuiltin()

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

Definition at line 157 of file CGCall.h.

Referenced by getBuiltinDecl(), and getBuiltinID().

◆ isOrdinary()

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

◆ isPseudoDestructor()

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

Definition at line 169 of file CGCall.h.

Referenced by getPseudoDestructorExpr().

◆ isVirtual()

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

◆ prepareConcreteCallee()

CGCallee CGCallee::prepareConcreteCallee ( CodeGenFunction CGF) const

◆ setFunctionPointer()

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

Definition at line 194 of file CGCall.h.

References isOrdinary().

◆ setPointerAuthInfo()

void clang::CodeGen::CGCallee::setPointerAuthInfo ( CGPointerAuthInfo  PointerAuth)
inline

Definition at line 199 of file CGCall.h.

References isOrdinary(), and OrdinaryInfo.

Member Data Documentation

◆ BuiltinInfo

BuiltinInfoStorage clang::CodeGen::CGCallee::BuiltinInfo

Definition at line 94 of file CGCall.h.

Referenced by forBuiltin(), getBuiltinDecl(), and getBuiltinID().

◆ OrdinaryInfo

OrdinaryInfoStorage clang::CodeGen::CGCallee::OrdinaryInfo

Definition at line 93 of file CGCall.h.

Referenced by CGCallee(), getAbstractInfo(), getPointerAuthInfo(), and setPointerAuthInfo().

◆ PseudoDestructorInfo

PseudoDestructorInfoStorage clang::CodeGen::CGCallee::PseudoDestructorInfo

Definition at line 95 of file CGCall.h.

Referenced by forPseudoDestructor(), and getPseudoDestructorExpr().

◆ VirtualInfo

VirtualInfoStorage clang::CodeGen::CGCallee::VirtualInfo

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