clang  7.0.0svn
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]
Collaboration diagram for clang::ConstructionContext:
Collaboration graph
[legend]

Public Types

enum  Kind {
  SimpleVariableKind, CXX17ElidedCopyVariableKind, VARIABLE_BEGIN = SimpleVariableKind, VARIABLE_END = CXX17ElidedCopyVariableKind,
  SimpleConstructorInitializerKind, CXX17ElidedCopyConstructorInitializerKind, INITIALIZER_BEGIN = SimpleConstructorInitializerKind, INITIALIZER_END = CXX17ElidedCopyConstructorInitializerKind,
  NewAllocatedObjectKind, TemporaryObjectKind, SimpleReturnedValueKind, CXX17ElidedCopyReturnedValueKind,
  RETURNED_VALUE_BEGIN = SimpleReturnedValueKind, RETURNED_VALUE_END = CXX17ElidedCopyReturnedValueKind
}
 

Public Member Functions

Kind getKind () const
 

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

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 98 of file ConstructionContext.h.

Member Enumeration Documentation

◆ Kind

Enumerator
SimpleVariableKind 
CXX17ElidedCopyVariableKind 
VARIABLE_BEGIN 
VARIABLE_END 
SimpleConstructorInitializerKind 
CXX17ElidedCopyConstructorInitializerKind 
INITIALIZER_BEGIN 
INITIALIZER_END 
NewAllocatedObjectKind 
TemporaryObjectKind 
SimpleReturnedValueKind 
CXX17ElidedCopyReturnedValueKind 
RETURNED_VALUE_BEGIN 
RETURNED_VALUE_END 

Definition at line 100 of file ConstructionContext.h.

Constructor & Destructor Documentation

◆ ConstructionContext()

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

Member Function Documentation

◆ createFromLayers()

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

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.

Definition at line 43 of file ConstructionContext.cpp.

◆ getKind()

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

Member Data Documentation

◆ K

Kind clang::ConstructionContext::K
protected

Definition at line 118 of file ConstructionContext.h.


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