clang API Documentation
Represents a delete
expression for memory deallocation and destructor calls, e.g. "delete[] pArray".
More...
#include <ExprCXX.h>
Public Member Functions | |
CXXDeleteExpr (QualType ty, bool globalDelete, bool arrayForm, bool arrayFormAsWritten, bool usualArrayDeleteWantsSize, FunctionDecl *operatorDelete, Expr *arg, SourceLocation loc) | |
CXXDeleteExpr (EmptyShell Shell) | |
bool | isGlobalDelete () const |
bool | isArrayForm () const |
bool | isArrayFormAsWritten () const |
bool | doesUsualArrayDeleteWantSize () const |
FunctionDecl * | getOperatorDelete () const |
Expr * | getArgument () |
const Expr * | getArgument () const |
QualType | getDestroyedType () const |
Retrieve the type being destroyed. | |
SourceLocation | getLocStart () const LLVM_READONLY |
SourceLocation | getLocEnd () const LLVM_READONLY |
child_range | children () |
Static Public Member Functions | |
static bool | classof (const Stmt *T) |
Friends | |
class | ASTStmtReader |
Represents a delete
expression for memory deallocation and destructor calls, e.g. "delete[] pArray".
clang::CXXDeleteExpr::CXXDeleteExpr | ( | QualType | ty, |
bool | globalDelete, | ||
bool | arrayForm, | ||
bool | arrayFormAsWritten, | ||
bool | usualArrayDeleteWantsSize, | ||
FunctionDecl * | operatorDelete, | ||
Expr * | arg, | ||
SourceLocation | loc | ||
) | [inline] |
clang::CXXDeleteExpr::CXXDeleteExpr | ( | EmptyShell | Shell | ) | [inline, explicit] |
child_range clang::CXXDeleteExpr::children | ( | ) | [inline] |
Reimplemented from clang::Stmt.
static bool clang::CXXDeleteExpr::classof | ( | const Stmt * | T | ) | [inline, static] |
Reimplemented from clang::Expr.
Definition at line 1865 of file ExprCXX.h.
References clang::Stmt::getStmtClass().
bool clang::CXXDeleteExpr::doesUsualArrayDeleteWantSize | ( | ) | const [inline] |
Answers whether the usual array deallocation function for the allocated type expects the size of the allocation as a parameter. This can be true even if the actual deallocation function that we're using doesn't want a size.
Definition at line 1847 of file ExprCXX.h.
Referenced by clang::CodeGen::CGCXXABI::requiresArrayCookie().
Expr* clang::CXXDeleteExpr::getArgument | ( | ) | [inline] |
Definition at line 1853 of file ExprCXX.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXDeleteExpr(), getDestroyedType(), print_elem(), and clang::ento::ExprEngine::ProcessDeleteDtor().
const Expr* clang::CXXDeleteExpr::getArgument | ( | ) | const [inline] |
QualType CXXDeleteExpr::getDestroyedType | ( | ) | const |
Retrieve the type being destroyed.
If the type being destroyed is a dependent type which may or may not be a pointer, return an invalid type.
Definition at line 216 of file ExprCXX.cpp.
References getArgument(), clang::Type::getAs(), clang::Expr::getType(), clang::Type::isDependentType(), and clang::Type::isPointerType().
Referenced by clang::CFGImplicitDtor::getDestructorDecl(), and clang::ento::ExprEngine::ProcessDeleteDtor().
SourceLocation clang::CXXDeleteExpr::getLocEnd | ( | ) | const [inline] |
Reimplemented from clang::Stmt.
Definition at line 1863 of file ExprCXX.h.
References clang::Stmt::getLocEnd().
SourceLocation clang::CXXDeleteExpr::getLocStart | ( | ) | const [inline] |
Reimplemented from clang::Stmt.
Definition at line 1862 of file ExprCXX.h.
Referenced by clang::ento::ExprEngine::ProcessDeleteDtor().
FunctionDecl* clang::CXXDeleteExpr::getOperatorDelete | ( | ) | const [inline] |
Definition at line 1851 of file ExprCXX.h.
Referenced by EmitObjectDelete().
bool clang::CXXDeleteExpr::isArrayForm | ( | ) | const [inline] |
Definition at line 1840 of file ExprCXX.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXDeleteExpr().
bool clang::CXXDeleteExpr::isArrayFormAsWritten | ( | ) | const [inline] |
bool clang::CXXDeleteExpr::isGlobalDelete | ( | ) | const [inline] |
friend class ASTStmtReader [friend] |
Reimplemented from clang::Stmt.