class ConstructionContext
Declaration
class ConstructionContext { /* full declaration omitted */ };
Description
ConstructionContext's subclasses describe different ways of constructing an object in C++. The context re-captures the essential parent AST nodes of the CXXConstructExpr it is assigned to and presents these nodes through easy-to-understand accessor methods.
Declared at: clang/include/clang/Analysis/ConstructionContext.h:243
Member Variables
- protected clang::ConstructionContext::Kind K
Method Overview
- protected ConstructionContext(clang::ConstructionContext::Kind K)
- private template <typename T, typename... ArgTypes>static T * create(clang::BumpVectorContext & C, ArgTypes... Args)
- private static const clang::ConstructionContext * createBoundTemporaryFromLayers(clang::BumpVectorContext & C, const clang::CXXBindTemporaryExpr * BTE, const clang::ConstructionContextLayer * ParentLayer)
- public static const clang::ConstructionContext * createFromLayers(clang::BumpVectorContext & C, const clang::ConstructionContextLayer * TopLayer)
- private static const clang::ConstructionContext * createMaterializedTemporaryFromLayers(clang::BumpVectorContext & C, const clang::MaterializeTemporaryExpr * MTE, const clang::CXXBindTemporaryExpr * BTE, const clang::ConstructionContextLayer * ParentLayer)
- public virtual const clang::ArrayInitLoopExpr * getArrayInitLoop() const
- public clang::ConstructionContext::Kind getKind() const
- public virtual ~ConstructionContext()
Methods
¶ConstructionContext(
clang::ConstructionContext::Kind K)
ConstructionContext(
clang::ConstructionContext::Kind K)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:272
Parameters
- clang::ConstructionContext::Kind K
¶template <typename T, typename... ArgTypes>
static T* create(clang::BumpVectorContext& C,
ArgTypes... Args)
template <typename T, typename... ArgTypes>
static T* create(clang::BumpVectorContext& C,
ArgTypes... Args)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:277
Templates
- T
- ArgTypes
Parameters
- clang::BumpVectorContext& C
- ArgTypes... Args
¶static const clang::ConstructionContext*
createBoundTemporaryFromLayers(
clang::BumpVectorContext& C,
const clang::CXXBindTemporaryExpr* BTE,
const clang::ConstructionContextLayer*
ParentLayer)
static const clang::ConstructionContext*
createBoundTemporaryFromLayers(
clang::BumpVectorContext& C,
const clang::CXXBindTemporaryExpr* BTE,
const clang::ConstructionContextLayer*
ParentLayer)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:295
Parameters
- clang::BumpVectorContext& C
- const clang::CXXBindTemporaryExpr* BTE
- const clang::ConstructionContextLayer* ParentLayer
¶static const clang::ConstructionContext*
createFromLayers(
clang::BumpVectorContext& C,
const clang::ConstructionContextLayer*
TopLayer)
static const clang::ConstructionContext*
createFromLayers(
clang::BumpVectorContext& C,
const clang::ConstructionContextLayer*
TopLayer)
Description
Consume the construction context layer, together with its parent layers, and wrap it up into a complete construction context. May return null if layers do not form any supported construction context.
Declared at: clang/include/clang/Analysis/ConstructionContext.h:304
Parameters
- clang::BumpVectorContext& C
- const clang::ConstructionContextLayer* TopLayer
¶static const clang::ConstructionContext*
createMaterializedTemporaryFromLayers(
clang::BumpVectorContext& C,
const clang::MaterializeTemporaryExpr* MTE,
const clang::CXXBindTemporaryExpr* BTE,
const clang::ConstructionContextLayer*
ParentLayer)
static const clang::ConstructionContext*
createMaterializedTemporaryFromLayers(
clang::BumpVectorContext& C,
const clang::MaterializeTemporaryExpr* MTE,
const clang::CXXBindTemporaryExpr* BTE,
const clang::ConstructionContextLayer*
ParentLayer)
Declared at: clang/include/clang/Analysis/ConstructionContext.h:285
Parameters
- clang::BumpVectorContext& C
- const clang::MaterializeTemporaryExpr* MTE
- const clang::CXXBindTemporaryExpr* BTE
- const clang::ConstructionContextLayer* ParentLayer
¶virtual const clang::ArrayInitLoopExpr*
getArrayInitLoop() const
virtual const clang::ArrayInitLoopExpr*
getArrayInitLoop() const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:309
¶clang::ConstructionContext::Kind getKind() const
clang::ConstructionContext::Kind getKind() const
Declared at: clang/include/clang/Analysis/ConstructionContext.h:307
¶virtual ~ConstructionContext()
virtual ~ConstructionContext()
Declared at: clang/include/clang/Analysis/ConstructionContext.h:312