clang 20.0.0git
|
Represents a temporary object, eg. More...
#include "clang/Analysis/ConstructionContext.h"
Public Member Functions | |
const CXXBindTemporaryExpr * | getCXXBindTemporaryExpr () const |
CXXBindTemporaryExpr here is non-null as long as the temporary has a non-trivial destructor. | |
const MaterializeTemporaryExpr * | getMaterializedTemporaryExpr () const |
MaterializeTemporaryExpr is non-null as long as the temporary is actually used after construction, eg. | |
Public Member Functions inherited from clang::ConstructionContext | |
Kind | getKind () const |
virtual const ArrayInitLoopExpr * | getArrayInitLoop () const |
virtual | ~ConstructionContext ()=default |
Static Public Member Functions | |
static bool | classof (const ConstructionContext *CC) |
Static Public Member Functions inherited from clang::ConstructionContext | |
static const ConstructionContext * | createFromLayers (BumpVectorContext &C, const ConstructionContextLayer *TopLayer) |
Consume the construction context layer, together with its parent layers, and wrap it up into a complete construction context. | |
Protected Member Functions | |
TemporaryObjectConstructionContext (ConstructionContext::Kind K, const CXXBindTemporaryExpr *BTE, const MaterializeTemporaryExpr *MTE) | |
Protected Member Functions inherited from clang::ConstructionContext | |
ConstructionContext (Kind K) | |
Additional Inherited Members | |
Public Types inherited from clang::ConstructionContext | |
enum | Kind { SimpleVariableKind , CXX17ElidedCopyVariableKind , VARIABLE_BEGIN = SimpleVariableKind , VARIABLE_END = CXX17ElidedCopyVariableKind , SimpleConstructorInitializerKind , CXX17ElidedCopyConstructorInitializerKind , INITIALIZER_BEGIN = SimpleConstructorInitializerKind , INITIALIZER_END = CXX17ElidedCopyConstructorInitializerKind , NewAllocatedObjectKind , SimpleTemporaryObjectKind , ElidedTemporaryObjectKind , TEMPORARY_BEGIN = SimpleTemporaryObjectKind , TEMPORARY_END = ElidedTemporaryObjectKind , SimpleReturnedValueKind , CXX17ElidedCopyReturnedValueKind , RETURNED_VALUE_BEGIN = SimpleReturnedValueKind , RETURNED_VALUE_END = CXX17ElidedCopyReturnedValueKind , ArgumentKind , LambdaCaptureKind } |
Protected Attributes inherited from clang::ConstructionContext | |
Kind | K |
Represents a temporary object, eg.
T(123), that does not immediately cross function boundaries "by value"; constructors that construct function value-type arguments or values that are immediately returned from the function that returns a value receive separate construction context kinds.
Definition at line 486 of file ConstructionContext.h.
|
inlineexplicitprotected |
Definition at line 491 of file ConstructionContext.h.
|
inlinestatic |
Definition at line 517 of file ConstructionContext.h.
References clang::ConstructionContext::getKind(), clang::ConstructionContext::TEMPORARY_BEGIN, and clang::ConstructionContext::TEMPORARY_END.
|
inline |
CXXBindTemporaryExpr here is non-null as long as the temporary has a non-trivial destructor.
Definition at line 504 of file ConstructionContext.h.
|
inline |
MaterializeTemporaryExpr is non-null as long as the temporary is actually used after construction, eg.
by binding to a reference (lifetime extension), accessing a field, calling a method, or passing it into a function (an elidable copy or move constructor would be a common example) by reference.
Definition at line 513 of file ConstructionContext.h.