clang 22.0.0git
clang::InitializationSequence::Step Class Reference

A single step in the initialization sequence. More...

#include "clang/Sema/Initialization.h"

Classes

struct  F

Public Member Functions

void Destroy ()

Public Attributes

StepKind Kind
 The kind of conversion or initialization step we are taking.
QualType Type
union { 
   struct F   Function 
 When Kind == SK_ResolvedOverloadedFunction or Kind == SK_UserConversion, the function that the expression should be resolved to or the conversion function to call, respectively. More...
   ImplicitConversionSequence *   ICS 
 When Kind = SK_ConversionSequence, the implicit conversion sequence. More...
   InitListExpr *   WrappingSyntacticList 
 When Kind = SK_RewrapInitList, the syntactic form of the wrapping list. More...
}; 

Detailed Description

A single step in the initialization sequence.

Definition at line 950 of file Initialization.h.

Member Function Documentation

◆ Destroy()

void InitializationSequence::Step::Destroy ( )

Definition at line 3824 of file SemaInit.cpp.

References ICS, Kind, clang::InitializationSequence::SK_ArrayInit, clang::InitializationSequence::SK_ArrayLoopIndex, clang::InitializationSequence::SK_ArrayLoopInit, clang::InitializationSequence::SK_AtomicConversion, clang::InitializationSequence::SK_BindReference, clang::InitializationSequence::SK_BindReferenceToTemporary, clang::InitializationSequence::SK_CAssignment, clang::InitializationSequence::SK_CastDerivedToBaseLValue, clang::InitializationSequence::SK_CastDerivedToBasePRValue, clang::InitializationSequence::SK_CastDerivedToBaseXValue, clang::InitializationSequence::SK_ConstructorInitialization, clang::InitializationSequence::SK_ConstructorInitializationFromList, clang::InitializationSequence::SK_ConversionSequence, clang::InitializationSequence::SK_ConversionSequenceNoNarrowing, clang::InitializationSequence::SK_ExtraneousCopyToTemporary, clang::InitializationSequence::SK_FinalCopy, clang::InitializationSequence::SK_FunctionReferenceConversion, clang::InitializationSequence::SK_GNUArrayInit, clang::InitializationSequence::SK_ListInitialization, clang::InitializationSequence::SK_ObjCObjectConversion, clang::InitializationSequence::SK_OCLSamplerInit, clang::InitializationSequence::SK_OCLZeroOpaqueType, clang::InitializationSequence::SK_ParenthesizedArrayInit, clang::InitializationSequence::SK_ParenthesizedListInit, clang::InitializationSequence::SK_PassByIndirectCopyRestore, clang::InitializationSequence::SK_PassByIndirectRestore, clang::InitializationSequence::SK_ProduceObjCObject, clang::InitializationSequence::SK_QualificationConversionLValue, clang::InitializationSequence::SK_QualificationConversionPRValue, clang::InitializationSequence::SK_QualificationConversionXValue, clang::InitializationSequence::SK_ResolveAddressOfOverloadedFunction, clang::InitializationSequence::SK_RewrapInitList, clang::InitializationSequence::SK_StdInitializerList, clang::InitializationSequence::SK_StdInitializerListConstructorCall, clang::InitializationSequence::SK_StringInit, clang::InitializationSequence::SK_UnwrapInitList, clang::InitializationSequence::SK_UserConversion, and clang::InitializationSequence::SK_ZeroInitialization.

Member Data Documentation

◆ [union]

◆ Function

struct F clang::InitializationSequence::Step::Function

When Kind == SK_ResolvedOverloadedFunction or Kind == SK_UserConversion, the function that the expression should be resolved to or the conversion function to call, respectively.

When Kind == SK_ConstructorInitialization or SK_ListConstruction, the constructor to be called.

Always a FunctionDecl, plus a Boolean flag telling if it was selected from an overloaded set having size greater than 1. For conversion decls, the naming class is the source type. For construct decls, the naming class is the target type.

Definition at line 975 of file Initialization.h.

Referenced by clang::InitializationSequence::AddAddressOverloadResolutionStep(), clang::InitializationSequence::AddConstructorInitializationStep(), clang::InitializationSequence::AddUserConversionStep(), clang::InitializationSequence::Perform(), and PerformConstructorInitialization().

◆ ICS

ImplicitConversionSequence* clang::InitializationSequence::Step::ICS

When Kind = SK_ConversionSequence, the implicit conversion sequence.

Definition at line 979 of file Initialization.h.

Referenced by clang::InitializationSequence::AddConversionSequenceStep(), Destroy(), and clang::InitializationSequence::Perform().

◆ Kind

StepKind clang::InitializationSequence::Step::Kind

The kind of conversion or initialization step we are taking.

Definition at line 953 of file Initialization.h.

Referenced by clang::InitializationSequence::AddAddressOverloadResolutionStep(), clang::InitializationSequence::AddArrayInitLoopStep(), clang::InitializationSequence::AddArrayInitStep(), clang::InitializationSequence::AddAtomicConversionStep(), clang::InitializationSequence::AddCAssignmentStep(), clang::InitializationSequence::AddConstructorInitializationStep(), clang::InitializationSequence::AddConversionSequenceStep(), clang::InitializationSequence::AddDerivedToBaseCastStep(), clang::InitializationSequence::AddExtraneousCopyToTemporary(), clang::InitializationSequence::AddFinalCopy(), clang::InitializationSequence::AddFunctionReferenceConversionStep(), clang::InitializationSequence::AddListInitializationStep(), clang::InitializationSequence::AddObjCObjectConversionStep(), clang::InitializationSequence::AddOCLSamplerInitStep(), clang::InitializationSequence::AddOCLZeroOpaqueTypeStep(), clang::InitializationSequence::AddParenthesizedArrayInitStep(), clang::InitializationSequence::AddParenthesizedListInitStep(), clang::InitializationSequence::AddProduceObjCObjectStep(), clang::InitializationSequence::AddQualificationConversionStep(), clang::InitializationSequence::AddReferenceBindingStep(), clang::InitializationSequence::AddStdInitializerListConstructionStep(), clang::InitializationSequence::AddStringInitStep(), clang::InitializationSequence::AddUnwrapInitListInitStep(), clang::InitializationSequence::AddUserConversionStep(), clang::InitializationSequence::AddZeroInitializationStep(), Destroy(), clang::InitializationSequence::Perform(), and clang::InitializationSequence::RewrapReferenceInitList().

◆ Type

QualType clang::InitializationSequence::Step::Type

Definition at line 956 of file Initialization.h.

Referenced by clang::InitializationSequence::AddAddressOverloadResolutionStep(), clang::InitializationSequence::AddArrayInitLoopStep(), clang::InitializationSequence::AddArrayInitStep(), clang::InitializationSequence::AddAtomicConversionStep(), clang::InitializationSequence::AddCAssignmentStep(), clang::InitializationSequence::AddConstructorInitializationStep(), clang::InitializationSequence::AddConversionSequenceStep(), clang::InitializationSequence::AddDerivedToBaseCastStep(), clang::InitializationSequence::AddExtraneousCopyToTemporary(), clang::InitializationSequence::AddFinalCopy(), clang::InitializationSequence::AddFunctionReferenceConversionStep(), clang::InitializationSequence::AddListInitializationStep(), clang::InitializationSequence::AddObjCObjectConversionStep(), clang::InitializationSequence::AddOCLSamplerInitStep(), clang::InitializationSequence::AddOCLZeroOpaqueTypeStep(), clang::InitializationSequence::AddParenthesizedArrayInitStep(), clang::InitializationSequence::AddParenthesizedListInitStep(), clang::InitializationSequence::AddProduceObjCObjectStep(), clang::InitializationSequence::AddQualificationConversionStep(), clang::InitializationSequence::AddReferenceBindingStep(), clang::InitializationSequence::AddStdInitializerListConstructionStep(), clang::InitializationSequence::AddStringInitStep(), clang::InitializationSequence::AddUnwrapInitListInitStep(), clang::InitializationSequence::AddUserConversionStep(), clang::InitializationSequence::AddZeroInitializationStep(), clang::InitializationSequence::Perform(), PerformConstructorInitialization(), and clang::InitializationSequence::RewrapReferenceInitList().

◆ WrappingSyntacticList

InitListExpr* clang::InitializationSequence::Step::WrappingSyntacticList

When Kind = SK_RewrapInitList, the syntactic form of the wrapping list.

Definition at line 983 of file Initialization.h.

Referenced by clang::InitializationSequence::Perform(), and clang::InitializationSequence::RewrapReferenceInitList().


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