clang API Documentation

Public Member Functions | Public Attributes
clang::InitializationSequence::Step Class Reference

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

#include <Initialization.h>

Collaboration diagram for clang::InitializationSequence::Step:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void Destroy ()

Public Attributes

StepKind Kind
 The kind of conversion or initialization step we are taking.
QualType Type
union {
   struct {
      bool   HadMultipleCandidates
      FunctionDecl *   Function
      DeclAccessPair   FoundDecl
   }   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.
   ImplicitConversionSequence *   ICS
 When Kind = SK_ConversionSequence, the implicit conversion sequence.
   InitListExpr *   WrappingSyntacticList
 When Kind = SK_RewrapInitList, the syntactic form of the wrapping list.
}; 

Detailed Description

A single step in the initialization sequence.

Definition at line 621 of file Initialization.h.


Member Function Documentation

void InitializationSequence::Step::Destroy ( )

Definition at line 2402 of file SemaInit.cpp.

References ICS, clang::InitializationSequence::SK_ArrayInit, clang::InitializationSequence::SK_BindReference, clang::InitializationSequence::SK_BindReferenceToTemporary, clang::InitializationSequence::SK_CAssignment, clang::InitializationSequence::SK_CastDerivedToBaseLValue, clang::InitializationSequence::SK_CastDerivedToBaseRValue, clang::InitializationSequence::SK_CastDerivedToBaseXValue, clang::InitializationSequence::SK_ConstructorInitialization, clang::InitializationSequence::SK_ConversionSequence, clang::InitializationSequence::SK_ExtraneousCopyToTemporary, clang::InitializationSequence::SK_ListConstructorCall, clang::InitializationSequence::SK_ListInitialization, clang::InitializationSequence::SK_ObjCObjectConversion, clang::InitializationSequence::SK_ParenthesizedArrayInit, clang::InitializationSequence::SK_PassByIndirectCopyRestore, clang::InitializationSequence::SK_PassByIndirectRestore, clang::InitializationSequence::SK_ProduceObjCObject, clang::InitializationSequence::SK_QualificationConversionLValue, clang::InitializationSequence::SK_QualificationConversionRValue, clang::InitializationSequence::SK_QualificationConversionXValue, clang::InitializationSequence::SK_ResolveAddressOfOverloadedFunction, clang::InitializationSequence::SK_RewrapInitList, clang::InitializationSequence::SK_StdInitializerList, clang::InitializationSequence::SK_StringInit, clang::InitializationSequence::SK_UnwrapInitList, clang::InitializationSequence::SK_UserConversion, and clang::InitializationSequence::SK_ZeroInitialization.

Referenced by clang::InitializationSequence::~InitializationSequence().


Member Data Documentation

union { ... }

Definition at line 643 of file Initialization.h.

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 641 of file Initialization.h.

When Kind = SK_ConversionSequence, the implicit conversion sequence.

Definition at line 648 of file Initialization.h.

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

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

Definition at line 652 of file Initialization.h.

Referenced by clang::InitializationSequence::Perform().


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