clang 22.0.0git
clang::AnyCall Class Reference

An instance of this class corresponds to a call. More...

#include "clang/Analysis/AnyCall.h"

Public Types

enum  Kind {
  Function , ObjCMethod , Block , Destructor ,
  Constructor , InheritedConstructor , Allocator , Deallocator
}
using param_const_iterator = ArrayRef<ParmVarDecl *>::const_iterator

Public Member Functions

 AnyCall (const CallExpr *CE)
 AnyCall (const ObjCMessageExpr *ME)
 AnyCall (const CXXNewExpr *NE)
 AnyCall (const CXXDeleteExpr *NE)
 AnyCall (const CXXConstructExpr *NE)
 AnyCall (const CXXInheritedCtorInitExpr *CIE)
 AnyCall (const CXXDestructorDecl *D)
 AnyCall (const CXXConstructorDecl *D)
 AnyCall (const ObjCMethodDecl *D)
 AnyCall (const FunctionDecl *D)
ArrayRef< ParmVarDecl * > parameters () const
param_const_iterator param_begin () const
param_const_iterator param_end () const
size_t param_size () const
bool param_empty () const
QualType getReturnType (ASTContext &Ctx) const
const IdentifierInfogetIdentifier () const
const DeclgetDecl () const
const ExprgetExpr () const
Kind getKind () const
void dump () const

Static Public Member Functions

static std::optional< AnyCallforExpr (const Expr *E)
 If E is a generic call (to ObjC method /function/block/etc), return a constructed AnyCall object.
static std::optional< AnyCallforDecl (const Decl *D)
 If D is a callable (Objective-C method or a function), return a constructed AnyCall object.

Detailed Description

An instance of this class corresponds to a call.

It might be a syntactically-concrete call, done as a part of evaluating an expression, or it may be an abstract callee with no associated expression.

Definition at line 26 of file AnyCall.h.

Member Typedef Documentation

◆ param_const_iterator

Definition at line 159 of file AnyCall.h.

Member Enumeration Documentation

◆ Kind

Enumerator
Function 

A function, function pointer, or a C++ method call.

ObjCMethod 

A call to an Objective-C method.

Block 

A call to an Objective-C block.

Destructor 

An implicit C++ destructor call (called implicitly or by operator 'delete')

Constructor 

An implicit or explicit C++ constructor call.

InheritedConstructor 

A C++ inherited constructor produced by a "using T::T" directive.

Allocator 

A C++ allocation function call (operator new), via C++ new-expression.

Deallocator 

A C++ deallocation function call (operator delete), via C++ delete-expression.

Definition at line 28 of file AnyCall.h.

Constructor & Destructor Documentation

◆ AnyCall() [1/10]

clang::AnyCall::AnyCall ( const CallExpr * CE)
inline

◆ AnyCall() [2/10]

clang::AnyCall::AnyCall ( const ObjCMessageExpr * ME)
inline

Definition at line 79 of file AnyCall.h.

References ObjCMethod.

◆ AnyCall() [3/10]

clang::AnyCall::AnyCall ( const CXXNewExpr * NE)
inline

Definition at line 82 of file AnyCall.h.

References Allocator.

◆ AnyCall() [4/10]

clang::AnyCall::AnyCall ( const CXXDeleteExpr * NE)
inline

Definition at line 85 of file AnyCall.h.

References Deallocator.

◆ AnyCall() [5/10]

clang::AnyCall::AnyCall ( const CXXConstructExpr * NE)
inline

Definition at line 88 of file AnyCall.h.

References Constructor.

◆ AnyCall() [6/10]

clang::AnyCall::AnyCall ( const CXXInheritedCtorInitExpr * CIE)
inline

Definition at line 91 of file AnyCall.h.

References InheritedConstructor.

◆ AnyCall() [7/10]

clang::AnyCall::AnyCall ( const CXXDestructorDecl * D)
inline

Definition at line 94 of file AnyCall.h.

References Destructor, and clang::nullptr.

◆ AnyCall() [8/10]

clang::AnyCall::AnyCall ( const CXXConstructorDecl * D)
inline

Definition at line 96 of file AnyCall.h.

References Constructor, and clang::nullptr.

◆ AnyCall() [9/10]

clang::AnyCall::AnyCall ( const ObjCMethodDecl * D)
inline

Definition at line 98 of file AnyCall.h.

References clang::nullptr, and ObjCMethod.

◆ AnyCall() [10/10]

clang::AnyCall::AnyCall ( const FunctionDecl * D)
inline

Definition at line 100 of file AnyCall.h.

References Constructor, Destructor, Function, clang::isa(), and clang::nullptr.

Member Function Documentation

◆ dump()

void clang::AnyCall::dump ( ) const
inline

Definition at line 209 of file AnyCall.h.

◆ forDecl()

std::optional< AnyCall > clang::AnyCall::forDecl ( const Decl * D)
inlinestatic

If D is a callable (Objective-C method or a function), return a constructed AnyCall object.

Return std::nullopt otherwise.

Definition at line 134 of file AnyCall.h.

References AnyCall().

Referenced by clang::ento::retaincountchecker::RetainCountChecker::checkBeginFunction(), and isInMIGCall().

◆ forExpr()

std::optional< AnyCall > clang::AnyCall::forExpr ( const Expr * E)
inlinestatic

If E is a generic call (to ObjC method /function/block/etc), return a constructed AnyCall object.

Return std::nullopt otherwise.

Definition at line 113 of file AnyCall.h.

References AnyCall().

Referenced by getSummary().

◆ getDecl()

const Decl * clang::AnyCall::getDecl ( ) const
inline

Definition at line 197 of file AnyCall.h.

◆ getExpr()

const Expr * clang::AnyCall::getExpr ( ) const
inline

Definition at line 201 of file AnyCall.h.

◆ getIdentifier()

const IdentifierInfo * clang::AnyCall::getIdentifier ( ) const
inline
Returns
Function identifier if it is a named declaration, nullptr otherwise.

Definition at line 191 of file AnyCall.h.

◆ getKind()

Kind clang::AnyCall::getKind ( ) const
inline

Definition at line 205 of file AnyCall.h.

◆ getReturnType()

QualType clang::AnyCall::getReturnType ( ASTContext & Ctx) const
inline

◆ param_begin()

param_const_iterator clang::AnyCall::param_begin ( ) const
inline

Definition at line 160 of file AnyCall.h.

References parameters().

◆ param_empty()

bool clang::AnyCall::param_empty ( ) const
inline

Definition at line 163 of file AnyCall.h.

References parameters().

◆ param_end()

param_const_iterator clang::AnyCall::param_end ( ) const
inline

Definition at line 161 of file AnyCall.h.

References parameters().

◆ param_size()

size_t clang::AnyCall::param_size ( ) const
inline

Definition at line 162 of file AnyCall.h.

References parameters().

◆ parameters()

ArrayRef< ParmVarDecl * > clang::AnyCall::parameters ( ) const
inline
Returns
formal parameters for direct calls (including virtual calls)

Definition at line 144 of file AnyCall.h.

Referenced by param_begin(), param_empty(), param_end(), and param_size().


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