clang 8.0.0

Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
clang::CXXAllocatorCall Class Reference

Represents the memory allocation call in a C++ new-expression. More...

`#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"`

Inheritance diagram for clang::CXXAllocatorCall:
[legend]
Collaboration diagram for clang::CXXAllocatorCall:
[legend]

## Public Member Functions
virtual const CXXNewExpr * | getOriginExpr () const
const FunctionDecl * | getDecl () const override
unsigned | getNumImplicitArgs () const
| Number of non-placement arguments to the call. More...
unsigned | getNumArgs () const override
const Expr * | getArgExpr (unsigned Index) const override
const Expr * | getPlacementArgExpr (unsigned Index) const
| Number of placement arguments to the operator new() call. More...
Kind | getKind () const override

## Static Public Member Functions
static bool | classof (const CallEvent *CE)

## Protected Member Functions
| CXXAllocatorCall (const CXXNewExpr *E, ProgramStateRef St, const LocationContext *LCtx)
| CXXAllocatorCall (const CXXAllocatorCall &Other)=default
void | cloneTo (void *Dest) const override

## Friends
class | CallEventManager

## Detailed Description

Represents the memory allocation call in a C++ new-expression.

This is a call to "operator new".

Definition at line 904 of file CallEvent.h.

## Constructor & Destructor Documentation

## ◆ CXXAllocatorCall() [1/2]

clang::CXXAllocatorCall::CXXAllocatorCall | ( | const CXXNewExpr * | E,
|  | ProgramStateRef | St,
|  | const LocationContext * | LCtx
| ) |  |
| inline protected

Definition at line 908 of file CallEvent.h.

## ◆ CXXAllocatorCall() [2/2]

clang::CXXAllocatorCall::CXXAllocatorCall | ( | const CXXAllocatorCall & | Other | ) |
| protected default

## Member Function Documentation

## ◆ classof()

static bool clang::CXXAllocatorCall::classof | ( | const CallEvent * | CE | ) |
| inline static

Definition at line 952 of file CallEvent.h.

References clang::ento::CE_CXXAllocator.

## ◆ cloneTo()

void clang::CXXAllocatorCall::cloneTo | ( | void * | Dest | ) | const
| inline override protected

Definition at line 913 of file CallEvent.h.

## ◆ getArgExpr()

const Expr* clang::CXXAllocatorCall::getArgExpr | ( | unsigned | Index | ) | const
| inline override

Definition at line 935 of file CallEvent.h.

## ◆ getDecl()

const FunctionDecl* clang::CXXAllocatorCall::getDecl | ( |  | ) | const
| inline override

Definition at line 920 of file CallEvent.h.

## ◆ getKind()

Kind clang::CXXAllocatorCall::getKind | ( |  | ) | const
| inline override

Definition at line 950 of file CallEvent.h.

References clang::ento::CE_CXXAllocator.

## ◆ getNumArgs()

unsigned clang::CXXAllocatorCall::getNumArgs | ( |  | ) | const
| inline override

Definition at line 931 of file CallEvent.h.

## ◆ getNumImplicitArgs()

unsigned clang::CXXAllocatorCall::getNumImplicitArgs | ( |  | ) | const
| inline

Number of non-placement arguments to the call.

It is equal to 2 for C++17 aligned operator new() calls that have alignment implicitly passed as the second argument, and to 1 for other operator new() calls.

Definition at line 927 of file CallEvent.h.

## ◆ getOriginExpr()

virtual const CXXNewExpr* clang::CXXAllocatorCall::getOriginExpr | ( |  | ) | const
| inline virtual

Definition at line 916 of file CallEvent.h.

References clang::ento::CallEvent::getOriginExpr().

## ◆ getPlacementArgExpr()

const Expr* clang::CXXAllocatorCall::getPlacementArgExpr | ( | unsigned | Index | ) | const
| inline

Number of placement arguments to the operator new() call.

For example, standard std::nothrow operator new and standard placement new both have 1 implicit argument (size) and 1 placement argument, while regular operator new() has 1 implicit argument and 0 placement arguments.

Definition at line 946 of file CallEvent.h.

## Friends And Related Function Documentation

## ◆ CallEventManager

friend class CallEventManager
| friend

Definition at line 905 of file CallEvent.h.

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

- include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h