clang 24.0.0git
clang::CodeGen::CGCallee Class Reference

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

#include "/work/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 FunctionDecl * getBuiltinDecl () const
unsigned getBuiltinID () const
bool isPseudoDestructor () const
const CXXPseudoDestructorExpr * getPseudoDestructorExpr () const
bool isOrdinary () const
CGCalleeInfo getAbstractInfo () const
const CGPointerAuthInfo & getPointerAuthInfo () const
llvm::Value * getFunctionPointer () const
void setFunctionPointer (llvm::Value *functionPtr)
void setPointerAuthInfo (CGPointerAuthInfo PointerAuth)
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.

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

Referenced by forDirect(), and 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 115 of file CGCall.h.

References OrdinaryInfo.

Member Function Documentation

◆ forBuiltin()

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

Definition at line 126 of file CGCall.h.

References BuiltinInfo.

Referenced by EmitDirectCallee().

◆ forDirect() [1/2]

◆ forDirect() [2/2]

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

Definition at line 145 of file CGCall.h.

References CGCallee().

◆ forPseudoDestructor()

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

Definition at line 134 of file CGCall.h.

References PseudoDestructorInfo.

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

◆ forVirtual()

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

◆ getAbstractInfo()

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

Definition at line 183 of file CGCall.h.

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

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

◆ getBuiltinDecl()

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

Definition at line 163 of file CGCall.h.

References BuiltinInfo, and isBuiltin().

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

◆ getBuiltinID()

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

Definition at line 167 of file CGCall.h.

References BuiltinInfo, and isBuiltin().

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

◆ getFunctionPointer()

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

◆ getPointerAuthInfo()

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

Definition at line 189 of file CGCall.h.

References isOrdinary(), and OrdinaryInfo.

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

◆ getPseudoDestructorExpr()

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

Definition at line 175 of file CGCall.h.

References isPseudoDestructor(), and PseudoDestructorInfo.

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

◆ getThisAddress()

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

Definition at line 218 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualCallExpr()

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

Definition at line 210 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualFunctionType()

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

Definition at line 222 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualMethodDecl()

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

Definition at line 214 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ isBuiltin()

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

◆ isOrdinary()

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

◆ isPseudoDestructor()

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

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

References isOrdinary().

◆ setPointerAuthInfo()

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

Definition at line 202 of file CGCall.h.

References isOrdinary(), and OrdinaryInfo.

Member Data Documentation

◆ BuiltinInfo

BuiltinInfoStorage clang::CodeGen::CGCallee::BuiltinInfo

Definition at line 97 of file CGCall.h.

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

◆ OrdinaryInfo

OrdinaryInfoStorage clang::CodeGen::CGCallee::OrdinaryInfo

Definition at line 96 of file CGCall.h.

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

◆ PseudoDestructorInfo

PseudoDestructorInfoStorage clang::CodeGen::CGCallee::PseudoDestructorInfo

Definition at line 98 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: