clang
9.0.0
|
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. More... | |
const MaterializeTemporaryExpr * | getMaterializedTemporaryExpr () const |
MaterializeTemporaryExpr is non-null as long as the temporary is actually used after construction, eg. More... | |
![]() | |
Kind | getKind () const |
Static Public Member Functions | |
static bool | classof (const ConstructionContext *CC) |
![]() | |
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. More... | |
Protected Member Functions | |
TemporaryObjectConstructionContext (ConstructionContext::Kind K, const CXXBindTemporaryExpr *BTE, const MaterializeTemporaryExpr *MTE) | |
![]() | |
ConstructionContext (Kind K) | |
Additional Inherited Members | |
![]() | |
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 } |
![]() | |
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 460 of file ConstructionContext.h.
|
inlineexplicitprotected |
Definition at line 465 of file ConstructionContext.h.
|
inlinestatic |
Definition at line 491 of file ConstructionContext.h.
References clang::ConstructionContext::getKind().
|
inline |
CXXBindTemporaryExpr here is non-null as long as the temporary has a non-trivial destructor.
Definition at line 478 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 487 of file ConstructionContext.h.