clang 19.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
clang::ConstructionContext Class Reference

ConstructionContext's subclasses describe different ways of constructing an object in C++. More...

#include "clang/Analysis/ConstructionContext.h"

Inheritance diagram for clang::ConstructionContext:
Inheritance graph
[legend]

Public Types

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
}
 

Public Member Functions

Kind getKind () const
 
virtual const ArrayInitLoopExprgetArrayInitLoop () const
 
virtual ~ConstructionContext ()=default
 

Static Public Member Functions

static const ConstructionContextcreateFromLayers (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

 ConstructionContext (Kind K)
 

Protected Attributes

Kind K
 

Detailed 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.

Definition at line 243 of file ConstructionContext.h.

Member Enumeration Documentation

◆ Kind

Enumerator
SimpleVariableKind 
CXX17ElidedCopyVariableKind 
VARIABLE_BEGIN 
VARIABLE_END 
SimpleConstructorInitializerKind 
CXX17ElidedCopyConstructorInitializerKind 
INITIALIZER_BEGIN 
INITIALIZER_END 
NewAllocatedObjectKind 
SimpleTemporaryObjectKind 
ElidedTemporaryObjectKind 
TEMPORARY_BEGIN 
TEMPORARY_END 
SimpleReturnedValueKind 
CXX17ElidedCopyReturnedValueKind 
RETURNED_VALUE_BEGIN 
RETURNED_VALUE_END 
ArgumentKind 
LambdaCaptureKind 

Definition at line 245 of file ConstructionContext.h.

Constructor & Destructor Documentation

◆ ConstructionContext()

clang::ConstructionContext::ConstructionContext ( Kind  K)
inlineexplicitprotected

Definition at line 272 of file ConstructionContext.h.

◆ ~ConstructionContext()

virtual clang::ConstructionContext::~ConstructionContext ( )
virtualdefault

Member Function Documentation

◆ createFromLayers()

const ConstructionContext * ConstructionContext::createFromLayers ( BumpVectorContext C,
const ConstructionContextLayer TopLayer 
)
static

◆ getArrayInitLoop()

virtual const ArrayInitLoopExpr * clang::ConstructionContext::getArrayInitLoop ( ) const
inlinevirtual

◆ getKind()

Kind clang::ConstructionContext::getKind ( ) const
inline

Member Data Documentation

◆ K

Kind clang::ConstructionContext::K
protected

Definition at line 268 of file ConstructionContext.h.

Referenced by getKind().


The documentation for this class was generated from the following files: