clang  13.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 Optional< AnyCallforExpr (const Expr *E)
 If E is a generic call (to ObjC method /function/block/etc), return a constructed AnyCall object. More...
 
static Optional< AnyCallforDecl (const Decl *D)
 If D is a callable (Objective-C method or a function), return a constructed AnyCall object. More...
 

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 25 of file AnyCall.h.

Member Typedef Documentation

◆ param_const_iterator

Definition at line 158 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 27 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 78 of file AnyCall.h.

◆ AnyCall() [3/10]

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

Definition at line 81 of file AnyCall.h.

◆ AnyCall() [4/10]

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

Definition at line 84 of file AnyCall.h.

◆ AnyCall() [5/10]

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

Definition at line 87 of file AnyCall.h.

◆ AnyCall() [6/10]

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

Definition at line 90 of file AnyCall.h.

◆ AnyCall() [7/10]

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

Definition at line 93 of file AnyCall.h.

◆ AnyCall() [8/10]

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

Definition at line 95 of file AnyCall.h.

◆ AnyCall() [9/10]

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

Definition at line 97 of file AnyCall.h.

◆ AnyCall() [10/10]

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

Definition at line 99 of file AnyCall.h.

References Constructor, Destructor, and Function.

Member Function Documentation

◆ dump()

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

Definition at line 208 of file AnyCall.h.

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

◆ forDecl()

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

Definition at line 133 of file AnyCall.h.

References AnyCall().

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

◆ forExpr()

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

Definition at line 112 of file AnyCall.h.

References AnyCall().

Referenced by getSummary().

◆ getDecl()

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

Definition at line 196 of file AnyCall.h.

◆ getExpr()

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

Definition at line 200 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 190 of file AnyCall.h.

◆ getKind()

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

Definition at line 204 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 159 of file AnyCall.h.

References parameters().

◆ param_empty()

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

Definition at line 162 of file AnyCall.h.

References parameters().

◆ param_end()

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

Definition at line 160 of file AnyCall.h.

References parameters().

◆ param_size()

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

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