clang 19.0.0git
Public Types | Public Member Functions | Static Public Member Functions | List of all members
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.

◆ AnyCall() [3/10]

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

Definition at line 82 of file AnyCall.h.

◆ AnyCall() [4/10]

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

Definition at line 85 of file AnyCall.h.

◆ AnyCall() [5/10]

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

Definition at line 88 of file AnyCall.h.

◆ AnyCall() [6/10]

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

Definition at line 91 of file AnyCall.h.

◆ AnyCall() [7/10]

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

Definition at line 94 of file AnyCall.h.

◆ AnyCall() [8/10]

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

Definition at line 96 of file AnyCall.h.

◆ AnyCall() [9/10]

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

Definition at line 98 of file AnyCall.h.

◆ AnyCall() [10/10]

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

Definition at line 100 of file AnyCall.h.

References Constructor, Destructor, and Function.

Member Function Documentation

◆ dump()

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

Definition at line 209 of file AnyCall.h.

References clang::Decl::dump(), and clang::Stmt::dump().

◆ forDecl()

static 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.

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

◆ forExpr()

static 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.

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: