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)

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)

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)

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)

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)

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

Declared at: clang/include/clang/Analysis/ConstructionContext.h:309

clang::ConstructionContext::Kind getKind() const

Declared at: clang/include/clang/Analysis/ConstructionContext.h:307

virtual ~ConstructionContext()

Declared at: clang/include/clang/Analysis/ConstructionContext.h:312