A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/classclang_1_1InitializationSequence.html below:

clang: clang::InitializationSequence Class Reference

Describes the sequence of initializations required to initialize a given object or reference with a set of arguments. More...

#include "clang/Sema/Initialization.h"

class   Step   A single step in the initialization sequence. More...
  enum   SequenceKind { FailedSequence = 0 , DependentSequence , NormalSequence }   Describes the kind of initialization sequence computed. More...
  enum   StepKind {
  SK_ResolveAddressOfOverloadedFunction , SK_CastDerivedToBasePRValue , SK_CastDerivedToBaseXValue , SK_CastDerivedToBaseLValue ,
  SK_BindReference , SK_BindReferenceToTemporary , SK_ExtraneousCopyToTemporary , SK_FinalCopy ,
  SK_UserConversion , SK_QualificationConversionPRValue , SK_QualificationConversionXValue , SK_QualificationConversionLValue ,
  SK_FunctionReferenceConversion , SK_AtomicConversion , SK_ConversionSequence , SK_ConversionSequenceNoNarrowing ,
  SK_ListInitialization , SK_UnwrapInitList , SK_RewrapInitList , SK_ConstructorInitialization ,
  SK_ConstructorInitializationFromList , SK_ZeroInitialization , SK_CAssignment , SK_StringInit ,
  SK_ObjCObjectConversion , SK_ArrayLoopIndex , SK_ArrayLoopInit , SK_ArrayInit ,
  SK_GNUArrayInit , SK_ParenthesizedArrayInit , SK_PassByIndirectCopyRestore , SK_PassByIndirectRestore ,
  SK_ProduceObjCObject , SK_StdInitializerList , SK_StdInitializerListConstructorCall , SK_OCLSamplerInit ,
  SK_OCLZeroOpaqueType , SK_ParenthesizedListInit
}   Describes the kind of a particular step in an initialization sequence. More...
  enum   FailureKind {
  FK_TooManyInitsForReference , FK_ParenthesizedListInitForReference , FK_ArrayNeedsInitList , FK_ArrayNeedsInitListOrStringLiteral ,
  FK_ArrayNeedsInitListOrWideStringLiteral , FK_NarrowStringIntoWideCharArray , FK_WideStringIntoCharArray , FK_IncompatWideStringIntoWideChar ,
  FK_PlainStringIntoUTF8Char , FK_UTF8StringIntoPlainChar , FK_ArrayTypeMismatch , FK_NonConstantArrayInit ,
  FK_AddressOfOverloadFailed , FK_ReferenceInitOverloadFailed , FK_NonConstLValueReferenceBindingToTemporary , FK_NonConstLValueReferenceBindingToBitfield ,
  FK_NonConstLValueReferenceBindingToVectorElement , FK_NonConstLValueReferenceBindingToMatrixElement , FK_NonConstLValueReferenceBindingToUnrelated , FK_RValueReferenceBindingToLValue ,
  FK_ReferenceInitDropsQualifiers , FK_ReferenceAddrspaceMismatchTemporary , FK_ReferenceInitFailed , FK_ConversionFailed ,
  FK_ConversionFromPropertyFailed , FK_TooManyInitsForScalar , FK_ParenthesizedListInitForScalar , FK_ReferenceBindingToInitList ,
  FK_InitListBadDestinationType , FK_UserConversionOverloadFailed , FK_ConstructorOverloadFailed , FK_ListConstructorOverloadFailed ,
  FK_DefaultInitOfConst , FK_Incomplete , FK_VariableLengthArrayHasInitializer , FK_ListInitializationFailed ,
  FK_PlaceholderType , FK_AddressOfUnaddressableFunction , FK_ExplicitConstructor , FK_ParenthesizedListInitFailed ,
  FK_DesignatedInitForNonAggregate
}   Describes why initialization failed. More...
  using  step_iterator = SmallVectorImpl< Step >::const_iterator   using  step_range = llvm::iterator_range< step_iterator >   void  SetZeroInitializationFixit (const std::string &Fixit, SourceLocation L)   Call for initializations are invalid but that would be valid zero initialzations if Fixit was applied.
    InitializationSequence (Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, MultiExprArg Args, bool TopLevelOfInitList=false, bool TreatUnavailableAsInvalid=true)   Try to perform initialization of the given entity, creating a record of the steps required to perform the initialization.
  void  InitializeFrom (Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, MultiExprArg Args, bool TopLevelOfInitList, bool TreatUnavailableAsInvalid)     ~InitializationSequence ()   ExprResult  Perform (Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, MultiExprArg Args, QualType *ResultType=nullptr)   Perform the actual initialization of the given entity based on the computed initialization sequence.
  bool  Diagnose (Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef< Expr * > Args)   Diagnose an potentially-invalid initialization sequence.
  enum SequenceKind  getKind () const   Determine the kind of initialization sequence computed.
  void  setSequenceKind (enum SequenceKind SK)   Set the kind of sequence computed.
    operator bool () const   Determine whether the initialization sequence is valid.
  bool  Failed () const   Determine whether the initialization sequence is invalid.
  step_iterator  step_begin () const   step_iterator  step_end () const   step_range  steps () const   bool  isDirectReferenceBinding () const   Determine whether this initialization is a direct reference binding (C++ [dcl.init.ref]).
  bool  isAmbiguous () const   Determine whether this initialization failed due to an ambiguity.
  bool  isConstructorInitialization () const   Determine whether this initialization is direct call to a constructor.
  void  AddAddressOverloadResolutionStep (FunctionDecl *Function, DeclAccessPair Found, bool HadMultipleCandidates)   Add a new step in the initialization that resolves the address of an overloaded function to a specific function declaration.
  void  AddDerivedToBaseCastStep (QualType BaseType, ExprValueKind Category)   Add a new step in the initialization that performs a derived-to- base cast.
  void  AddReferenceBindingStep (QualType T, bool BindingTemporary)   Add a new step binding a reference to an object.
  void  AddExtraneousCopyToTemporary (QualType T)   Add a new step that makes an extraneous copy of the input to a temporary of the same class type.
  void  AddFinalCopy (QualType T)   Add a new step that makes a copy of the input to an object of the given type, as the final step in class copy-initialization.
  void  AddUserConversionStep (FunctionDecl *Function, DeclAccessPair FoundDecl, QualType T, bool HadMultipleCandidates)   Add a new step invoking a conversion function, which is either a constructor or a conversion function.
  void  AddQualificationConversionStep (QualType Ty, ExprValueKind Category)   Add a new step that performs a qualification conversion to the given type.
  void  AddFunctionReferenceConversionStep (QualType Ty)   Add a new step that performs a function reference conversion to the given type.
  void  AddAtomicConversionStep (QualType Ty)   Add a new step that performs conversion from non-atomic to atomic type.
  void  AddConversionSequenceStep (const ImplicitConversionSequence &ICS, QualType T, bool TopLevelOfInitList=false)   Add a new step that applies an implicit conversion sequence.
  void  AddListInitializationStep (QualType T)   Add a list-initialization step.
  void  AddConstructorInitializationStep (DeclAccessPair FoundDecl, CXXConstructorDecl *Constructor, QualType T, bool HadMultipleCandidates, bool FromInitList, bool AsInitList)   Add a constructor-initialization step.
  void  AddZeroInitializationStep (QualType T)   Add a zero-initialization step.
  void  AddCAssignmentStep (QualType T)   Add a C assignment step.
  void  AddStringInitStep (QualType T)   Add a string init step.
  void  AddObjCObjectConversionStep (QualType T)   Add an Objective-C object conversion step, which is always a no-op.
  void  AddArrayInitLoopStep (QualType T, QualType EltTy)   Add an array initialization loop step.
  void  AddArrayInitStep (QualType T, bool IsGNUExtension)   Add an array initialization step.
  void  AddParenthesizedArrayInitStep (QualType T)   Add a parenthesized array initialization step.
  void  AddPassByIndirectCopyRestoreStep (QualType T, bool shouldCopy)   Add a step to pass an object by indirect copy-restore.
  void  AddProduceObjCObjectStep (QualType T)   Add a step to "produce" an Objective-C object (by retaining it).
  void  AddStdInitializerListConstructionStep (QualType T)   Add a step to construct a std::initializer_list object from an initializer list.
  void  AddOCLSamplerInitStep (QualType T)   Add a step to initialize an OpenCL sampler from an integer constant.
  void  AddOCLZeroOpaqueTypeStep (QualType T)   Add a step to initialzie an OpenCL opaque type (event_t, queue_t, etc.) from a zero constant.
  void  AddParenthesizedListInitStep (QualType T)   void  AddUnwrapInitListInitStep (InitListExpr *Syntactic)   Only used when initializing structured bindings from an array with direct-list-initialization.
  void  RewrapReferenceInitList (QualType T, InitListExpr *Syntactic)   Add steps to unwrap a initializer list for a reference around a single element and rewrap it at the end.
  void  SetFailed (FailureKind Failure)   Note that this initialization sequence failed.
  void  SetOverloadFailure (FailureKind Failure, OverloadingResult Result)   Note that this initialization sequence failed due to failed overload resolution.
  OverloadCandidateSetgetFailedCandidateSet ()   Retrieve a reference to the candidate set when overload resolution fails.
  OverloadingResult  getFailedOverloadResult () const   Get the overloading result, for when the initialization sequence failed due to a bad overload.
  void  setIncompleteTypeFailure (QualType IncompleteType)   Note that this initialization sequence failed due to an incomplete type.
  FailureKind  getFailureKind () const   Determine why initialization failed.
  void  dump (raw_ostream &OS) const   Dump a representation of this initialization sequence to the given stream, for debugging purposes.
  void  dump () const   Dump a representation of this initialization sequence to standard error, for debugging purposes.
 

Describes the sequence of initializations required to initialize a given object or reference with a set of arguments.

Definition at line 802 of file Initialization.h.

◆ step_iterator ◆ step_range ◆ FailureKind

Describes why initialization failed.

Enumerator FK_TooManyInitsForReference 

Too many initializers provided for a reference.

FK_ParenthesizedListInitForReference 

Reference initialized from a parenthesized initializer list.

FK_ArrayNeedsInitList 

Array must be initialized with an initializer list.

FK_ArrayNeedsInitListOrStringLiteral 

Array must be initialized with an initializer list or a string literal.

FK_ArrayNeedsInitListOrWideStringLiteral 

Array must be initialized with an initializer list or a wide string literal.

FK_NarrowStringIntoWideCharArray 

Initializing a wide char array with narrow string literal.

FK_WideStringIntoCharArray 

Initializing char array with wide string literal.

FK_IncompatWideStringIntoWideChar 

Initializing wide char array with incompatible wide string literal.

FK_PlainStringIntoUTF8Char 

Initializing char8_t array with plain string literal.

FK_UTF8StringIntoPlainChar 

Initializing char array with UTF-8 string literal.

FK_ArrayTypeMismatch 

Array type mismatch.

FK_NonConstantArrayInit 

Non-constant array initializer.

FK_AddressOfOverloadFailed 

Cannot resolve the address of an overloaded function.

FK_ReferenceInitOverloadFailed 

Overloading due to reference initialization failed.

FK_NonConstLValueReferenceBindingToTemporary 

Non-const lvalue reference binding to a temporary.

FK_NonConstLValueReferenceBindingToBitfield 

Non-const lvalue reference binding to a bit-field.

FK_NonConstLValueReferenceBindingToVectorElement 

Non-const lvalue reference binding to a vector element.

FK_NonConstLValueReferenceBindingToMatrixElement 

Non-const lvalue reference binding to a matrix element.

FK_NonConstLValueReferenceBindingToUnrelated 

Non-const lvalue reference binding to an lvalue of unrelated type.

FK_RValueReferenceBindingToLValue 

Rvalue reference binding to an lvalue.

FK_ReferenceInitDropsQualifiers 

Reference binding drops qualifiers.

FK_ReferenceAddrspaceMismatchTemporary 

Reference with mismatching address space binding to temporary.

FK_ReferenceInitFailed 

Reference binding failed.

FK_ConversionFailed 

Implicit conversion failed.

FK_ConversionFromPropertyFailed 

Implicit conversion failed.

FK_TooManyInitsForScalar 

Too many initializers for scalar.

FK_ParenthesizedListInitForScalar 

Scalar initialized from a parenthesized initializer list.

FK_ReferenceBindingToInitList 

Reference initialization from an initializer list.

FK_InitListBadDestinationType 

Initialization of some unused destination type with an initializer list.

FK_UserConversionOverloadFailed 

Overloading for a user-defined conversion failed.

FK_ConstructorOverloadFailed 

Overloading for initialization by constructor failed.

FK_ListConstructorOverloadFailed 

Overloading for list-initialization by constructor failed.

FK_DefaultInitOfConst 

Default-initialization of a 'const' object.

FK_Incomplete 

Initialization of an incomplete type.

FK_VariableLengthArrayHasInitializer 

Variable-length array must not have an initializer.

FK_ListInitializationFailed 

List initialization failed at some point.

FK_PlaceholderType 

Initializer has a placeholder type which cannot be resolved by initialization.

FK_AddressOfUnaddressableFunction 

Trying to take the address of a function that doesn't support having its address taken.

FK_ExplicitConstructor 

List-copy-initialization chose an explicit constructor.

FK_ParenthesizedListInitFailed 

Parenthesized list initialization failed at some point.

This is a C++20 feature.

FK_DesignatedInitForNonAggregate 

Definition at line 996 of file Initialization.h.

◆ SequenceKind

Describes the kind of initialization sequence computed.

Enumerator FailedSequence 

A failed initialization sequence.

The failure kind tells what happened.

DependentSequence 

A dependent initialization, which could not be type-checked due to the presence of dependent types or dependently-typed expressions.

NormalSequence 

A normal sequence.

Definition at line 805 of file Initialization.h.

◆ StepKind

Describes the kind of a particular step in an initialization sequence.

Enumerator SK_ResolveAddressOfOverloadedFunction 

Resolve the address of an overloaded function to a specific function declaration.

SK_CastDerivedToBasePRValue 

Perform a derived-to-base cast, producing an rvalue.

SK_CastDerivedToBaseXValue 

Perform a derived-to-base cast, producing an xvalue.

SK_CastDerivedToBaseLValue 

Perform a derived-to-base cast, producing an lvalue.

SK_BindReference 

Reference binding to an lvalue.

SK_BindReferenceToTemporary 

Reference binding to a temporary.

SK_ExtraneousCopyToTemporary 

An optional copy of a temporary object to another temporary object, which is permitted (but not required) by C++98/03 but not C++0x.

SK_FinalCopy 

Direct-initialization from a reference-related object in the final stage of class copy-initialization.

SK_UserConversion 

Perform a user-defined conversion, either via a conversion function or via a constructor.

SK_QualificationConversionPRValue 

Perform a qualification conversion, producing a prvalue.

SK_QualificationConversionXValue 

Perform a qualification conversion, producing an xvalue.

SK_QualificationConversionLValue 

Perform a qualification conversion, producing an lvalue.

SK_FunctionReferenceConversion 

Perform a function reference conversion, see [dcl.init.ref]p4.

SK_AtomicConversion 

Perform a conversion adding _Atomic to a type.

SK_ConversionSequence 

Perform an implicit conversion sequence.

SK_ConversionSequenceNoNarrowing 

Perform an implicit conversion sequence without narrowing.

SK_ListInitialization 

Perform list-initialization without a constructor.

SK_UnwrapInitList 

Unwrap the single-element initializer list for a reference.

SK_RewrapInitList 

Rewrap the single-element initializer list for a reference.

SK_ConstructorInitialization 

Perform initialization via a constructor.

SK_ConstructorInitializationFromList 

Perform initialization via a constructor, taking arguments from a single InitListExpr.

SK_ZeroInitialization 

Zero-initialize the object.

SK_CAssignment 

C assignment.

SK_StringInit 

Initialization by string.

SK_ObjCObjectConversion 

An initialization that "converts" an Objective-C object (not a point to an object) to another Objective-C object type.

SK_ArrayLoopIndex 

Array indexing for initialization by elementwise copy.

SK_ArrayLoopInit 

Array initialization by elementwise copy.

SK_ArrayInit 

Array initialization (from an array rvalue).

SK_GNUArrayInit 

Array initialization (from an array rvalue) as a GNU extension.

SK_ParenthesizedArrayInit 

Array initialization from a parenthesized initializer list.

This is a GNU C++ extension.

SK_PassByIndirectCopyRestore 

Pass an object by indirect copy-and-restore.

SK_PassByIndirectRestore 

Pass an object by indirect restore.

SK_ProduceObjCObject 

Produce an Objective-C object pointer.

SK_StdInitializerList 

Construct a std::initializer_list from an initializer list.

SK_StdInitializerListConstructorCall 

Perform initialization via a constructor taking a single std::initializer_list argument.

SK_OCLSamplerInit 

Initialize an OpenCL sampler from an integer.

SK_OCLZeroOpaqueType 

Initialize an opaque OpenCL type (event_t, queue_t, etc.) with zero.

SK_ParenthesizedListInit 

Initialize an aggreagate with parenthesized list of values.

This is a C++20 feature.

Definition at line 821 of file Initialization.h.

◆ InitializationSequence()

Try to perform initialization of the given entity, creating a record of the steps required to perform the initialization.

The generated initialization sequence will either contain enough information to diagnose

Parameters
S the semantic analysis object. Entity the entity being initialized. Kind the kind of initialization being performed. Args the argument(s) provided for initialization. TopLevelOfInitList true if we are initializing from an expression at the top level inside an initializer list. This disallows narrowing conversions in C++11 onwards. TreatUnavailableAsInvalid true if we want to treat unavailable as invalid.

Definition at line 6370 of file SemaInit.cpp.

References InitializeFrom().

◆ ~InitializationSequence() InitializationSequence::~InitializationSequence ( )

Definition at line 6851 of file SemaInit.cpp.

◆ AddAddressOverloadResolutionStep() ◆ AddArrayInitLoopStep() void InitializationSequence::AddArrayInitLoopStep ( QualType  T, QualType  EltTy  ) ◆ AddArrayInitStep() void InitializationSequence::AddArrayInitStep ( QualType  T, bool  IsGNUExtension  ) ◆ AddAtomicConversionStep() void InitializationSequence::AddAtomicConversionStep ( QualType  Ty ) ◆ AddCAssignmentStep() void InitializationSequence::AddCAssignmentStep ( QualType  T ) ◆ AddConstructorInitializationStep() ◆ AddConversionSequenceStep() ◆ AddDerivedToBaseCastStep() ◆ AddExtraneousCopyToTemporary() void InitializationSequence::AddExtraneousCopyToTemporary ( QualType  T )

Add a new step that makes an extraneous copy of the input to a temporary of the same class type.

This extraneous copy only occurs during reference binding in C++98/03, where we are permitted (but not required) to introduce an extra copy. At a bare minimum, we must check that we could call the copy constructor, and produce a diagnostic if the copy constructor is inaccessible or no copy constructor matches.

Parameters
T The type of the temporary being created.

Definition at line 3936 of file SemaInit.cpp.

References SK_ExtraneousCopyToTemporary, and clang::T.

Referenced by TryReferenceInitializationCore().

◆ AddFinalCopy() void InitializationSequence::AddFinalCopy ( QualType  T ) ◆ AddFunctionReferenceConversionStep() void InitializationSequence::AddFunctionReferenceConversionStep ( QualType  Ty ) ◆ AddListInitializationStep() void InitializationSequence::AddListInitializationStep ( QualType  T ) ◆ AddObjCObjectConversionStep() void InitializationSequence::AddObjCObjectConversionStep ( QualType  T ) ◆ AddOCLSamplerInitStep() void InitializationSequence::AddOCLSamplerInitStep ( QualType  T ) ◆ AddOCLZeroOpaqueTypeStep() void InitializationSequence::AddOCLZeroOpaqueTypeStep ( QualType  T ) ◆ AddParenthesizedArrayInitStep() void InitializationSequence::AddParenthesizedArrayInitStep ( QualType  T ) ◆ AddParenthesizedListInitStep() void InitializationSequence::AddParenthesizedListInitStep ( QualType  T ) ◆ AddPassByIndirectCopyRestoreStep() void InitializationSequence::AddPassByIndirectCopyRestoreStep ( QualType  T, bool  shouldCopy  ) ◆ AddProduceObjCObjectStep() void InitializationSequence::AddProduceObjCObjectStep ( QualType  T ) ◆ AddQualificationConversionStep() ◆ AddReferenceBindingStep() void InitializationSequence::AddReferenceBindingStep ( QualType  T, bool  BindingTemporary  ) ◆ AddStdInitializerListConstructionStep() void InitializationSequence::AddStdInitializerListConstructionStep ( QualType  T ) ◆ AddStringInitStep() void InitializationSequence::AddStringInitStep ( QualType  T ) ◆ AddUnwrapInitListInitStep() void InitializationSequence::AddUnwrapInitListInitStep ( InitListExprSyntactic ) ◆ AddUserConversionStep() ◆ AddZeroInitializationStep() void InitializationSequence::AddZeroInitializationStep ( QualType  T ) ◆ Diagnose()

Diagnose an potentially-invalid initialization sequence.

Returns
true if the initialization sequence was ill-formed, false otherwise.

Definition at line 8727 of file SemaInit.cpp.

References clang::OverloadCandidateSet::BestViableFunction(), clang::Type::castAs(), clang::Sema::checkAddressOfFunctionIsAvailable(), clang::OverloadCandidateSet::CompleteCandidates(), clang::Sema::Context, clang::FixItHint::CreateInsertion(), clang::Sema::CurContext, clang::SemaBase::Diag(), diagnoseListInit(), DiagnoseUninitializedReference(), clang::InitializedEntity::EK_Base, clang::InitializedEntity::EK_Member, clang::InitializedEntity::EK_ParenAggInitMember, clang::InitializedEntity::EK_Result, emitBadConversionNotes(), Failed(), clang::Sema::FixOverloadedFunctionReference(), FK_AddressOfOverloadFailed, FK_AddressOfUnaddressableFunction, FK_ArrayNeedsInitList, FK_ArrayNeedsInitListOrStringLiteral, FK_ArrayNeedsInitListOrWideStringLiteral, FK_ArrayTypeMismatch, FK_ConstructorOverloadFailed, FK_ConversionFailed, FK_ConversionFromPropertyFailed, FK_DefaultInitOfConst, FK_DesignatedInitForNonAggregate, FK_ExplicitConstructor, FK_IncompatWideStringIntoWideChar, FK_Incomplete, FK_InitListBadDestinationType, FK_ListConstructorOverloadFailed, FK_ListInitializationFailed, FK_NarrowStringIntoWideCharArray, FK_NonConstantArrayInit, FK_NonConstLValueReferenceBindingToBitfield, FK_NonConstLValueReferenceBindingToMatrixElement, FK_NonConstLValueReferenceBindingToTemporary, FK_NonConstLValueReferenceBindingToUnrelated, FK_NonConstLValueReferenceBindingToVectorElement, FK_ParenthesizedListInitFailed, FK_ParenthesizedListInitForReference, FK_ParenthesizedListInitForScalar, FK_PlaceholderType, FK_PlainStringIntoUTF8Char, FK_ReferenceAddrspaceMismatchTemporary, FK_ReferenceBindingToInitList, FK_ReferenceInitDropsQualifiers, FK_ReferenceInitFailed, FK_ReferenceInitOverloadFailed, FK_RValueReferenceBindingToLValue, FK_TooManyInitsForReference, FK_TooManyInitsForScalar, FK_UserConversionOverloadFailed, FK_UTF8StringIntoPlainChar, FK_VariableLengthArrayHasInitializer, FK_WideStringIntoCharArray, clang::Found, clang::Qualifiers::fromCVRMask(), clang::ActionResult< PtrTy, Compress >::get(), clang::Type::getAs(), clang::Sema::getASTContext(), clang::InitializedEntity::getBaseSpecifier(), clang::SourceRange::getBegin(), clang::Stmt::getBeginLoc(), clang::Qualifiers::getCVRQualifiers(), clang::InitializedEntity::getDecl(), clang::NamedDecl::getDeclName(), clang::InitListExpr::getInits(), clang::InitializedEntity::getKind(), clang::Sema::getLangOpts(), clang::Decl::getLocation(), clang::Sema::getLocForEndOfToken(), clang::InitializedEntity::getName(), clang::QualType::getNonReferenceType(), clang::InitListExpr::getNumInits(), clang::QualType::getQualifiers(), clang::Stmt::getSourceRange(), clang::Sema::getSpecialMember(), clang::StringLiteral::getString(), clang::ASTContext::getTagDeclType(), clang::CXXBaseSpecifier::getType(), clang::Expr::getType(), clang::InitializedEntity::getType(), clang::ASTContext::getTypeDeclType(), clang::Sema::HandleFunctionTypeMismatch(), clang::Qualifiers::hasQualifiers(), clang::InitializationKind::IK_Default, clang::InitializationKind::IK_Value, int, clang::Qualifiers::isAddressSpaceSupersetOf(), clang::Sema::isImplicitlyDeleted(), clang::Type::isIncompleteType(), clang::Expr::isLValue(), clang::Type::isRecordType(), clang::Type::isReferenceType(), clang::Type::isSignedIntegerType(), clang::QualType::isVolatileQualified(), clang::OverloadCandidateSet::NoteCandidates(), clang::Sema::NoteDeletedFunction(), clang::OCD_AllCandidates, clang::OCD_AmbiguousCandidates, clang::OR_Ambiguous, clang::OR_Deleted, clang::OR_No_Viable_Function, clang::OR_Success, clang::ASTContext::OverloadTy, clang::SemaBase::PDiag(), clang::Sema::RequireCompleteType(), clang::Sema::ResolveAddressOfOverloadedFunction(), clang::SourceRange::setBegin(), and TryOrBuildParenListInitialization().

Referenced by Perform(), TryClassUnification(), and TryOrBuildParenListInitialization().

◆ dump() [1/2] void InitializationSequence::dump ( ) const

Dump a representation of this initialization sequence to standard error, for debugging purposes.

Definition at line 9583 of file SemaInit.cpp.

References dump().

Referenced by dump().

◆ dump() [2/2] void InitializationSequence::dump ( raw_ostream &  OS ) const

Dump a representation of this initialization sequence to the given stream, for debugging purposes.

Definition at line 9233 of file SemaInit.cpp.

References DependentSequence, FailedSequence, FK_AddressOfOverloadFailed, FK_AddressOfUnaddressableFunction, FK_ArrayNeedsInitList, FK_ArrayNeedsInitListOrStringLiteral, FK_ArrayNeedsInitListOrWideStringLiteral, FK_ArrayTypeMismatch, FK_ConstructorOverloadFailed, FK_ConversionFailed, FK_ConversionFromPropertyFailed, FK_DefaultInitOfConst, FK_DesignatedInitForNonAggregate, FK_ExplicitConstructor, FK_IncompatWideStringIntoWideChar, FK_Incomplete, FK_InitListBadDestinationType, FK_ListConstructorOverloadFailed, FK_ListInitializationFailed, FK_NarrowStringIntoWideCharArray, FK_NonConstantArrayInit, FK_NonConstLValueReferenceBindingToBitfield, FK_NonConstLValueReferenceBindingToMatrixElement, FK_NonConstLValueReferenceBindingToTemporary, FK_NonConstLValueReferenceBindingToUnrelated, FK_NonConstLValueReferenceBindingToVectorElement, FK_ParenthesizedListInitFailed, FK_ParenthesizedListInitForReference, FK_ParenthesizedListInitForScalar, FK_PlaceholderType, FK_PlainStringIntoUTF8Char, FK_ReferenceAddrspaceMismatchTemporary, FK_ReferenceBindingToInitList, FK_ReferenceInitDropsQualifiers, FK_ReferenceInitFailed, FK_ReferenceInitOverloadFailed, FK_RValueReferenceBindingToLValue, FK_TooManyInitsForReference, FK_TooManyInitsForScalar, FK_UserConversionOverloadFailed, FK_UTF8StringIntoPlainChar, FK_VariableLengthArrayHasInitializer, FK_WideStringIntoCharArray, NormalSequence, SK_ArrayInit, SK_ArrayLoopIndex, SK_ArrayLoopInit, SK_AtomicConversion, SK_BindReference, SK_BindReferenceToTemporary, SK_CAssignment, SK_CastDerivedToBaseLValue, SK_CastDerivedToBasePRValue, SK_CastDerivedToBaseXValue, SK_ConstructorInitialization, SK_ConstructorInitializationFromList, SK_ConversionSequence, SK_ConversionSequenceNoNarrowing, SK_ExtraneousCopyToTemporary, SK_FinalCopy, SK_FunctionReferenceConversion, SK_GNUArrayInit, SK_ListInitialization, SK_ObjCObjectConversion, SK_OCLSamplerInit, SK_OCLZeroOpaqueType, SK_ParenthesizedArrayInit, SK_ParenthesizedListInit, SK_PassByIndirectCopyRestore, SK_PassByIndirectRestore, SK_ProduceObjCObject, SK_QualificationConversionLValue, SK_QualificationConversionPRValue, SK_QualificationConversionXValue, SK_ResolveAddressOfOverloadedFunction, SK_RewrapInitList, SK_StdInitializerList, SK_StdInitializerListConstructorCall, SK_StringInit, SK_UnwrapInitList, SK_UserConversion, SK_ZeroInitialization, step_begin(), and step_end().

◆ Failed() bool clang::InitializationSequence::Failed ( ) const inline ◆ getFailedCandidateSet() ◆ getFailedOverloadResult() ◆ getFailureKind() FailureKind clang::InitializationSequence::getFailureKind ( ) const inline ◆ getKind() enum SequenceKind clang::InitializationSequence::getKind ( ) const inline ◆ InitializeFrom()

Definition at line 6426 of file SemaInit.cpp.

References AddArrayInitStep(), AddAtomicConversionStep(), AddCAssignmentStep(), AddConversionSequenceStep(), AddListInitializationStep(), AddParenthesizedArrayInitStep(), AddPassByIndirectCopyRestoreStep(), AddZeroInitializationStep(), clang::Atomic, clang::OverloadCandidateSet::BestViableFunction(), canPerformArrayCopy(), clang::SemaObjC::CheckConversionToObjCLiteral(), clang::SemaObjC::CheckObjCBridgeRelatedConversions(), clang::Sema::CheckPlaceholderExpr(), clang::Sema::Context, clang::IntegerLiteral::Create(), DependentSequence, clang::SemaBase::Diag(), E, clang::InitializedEntity::EK_Member, emitUninitializedExplicitInitFields(), Failed(), clang::StandardConversionSequence::First, FK_AddressOfOverloadFailed, FK_AddressOfUnaddressableFunction, FK_ArrayNeedsInitList, FK_ArrayNeedsInitListOrStringLiteral, FK_ArrayNeedsInitListOrWideStringLiteral, FK_ArrayTypeMismatch, FK_ConstructorOverloadFailed, FK_ConversionFailed, FK_IncompatWideStringIntoWideChar, FK_NarrowStringIntoWideCharArray, FK_NonConstantArrayInit, FK_ParenthesizedListInitForReference, FK_ParenthesizedListInitForScalar, FK_PlaceholderType, FK_PlainStringIntoUTF8Char, FK_TooManyInitsForReference, FK_TooManyInitsForScalar, FK_UTF8StringIntoPlainChar, FK_VariableLengthArrayHasInitializer, FK_WideStringIntoCharArray, clang::Found, clang::ActionResult< PtrTy, Compress >::get(), clang::Type::getAs(), clang::ASTContext::getAsArrayType(), clang::Type::getAsRecordDecl(), clang::Sema::getASTContext(), clang::RecordType::getDecl(), clang::InitializedEntity::getDecl(), clang::ArrayType::getElementType(), getFailedCandidateSet(), getFailureKind(), clang::ASTContext::getIntWidth(), clang::InitializedEntity::getKind(), clang::Sema::getLangOpts(), clang::Decl::getLocation(), clang::ImplicitConversionSequence::getNullptrToBool(), clang::VectorType::getNumElements(), clang::StandardConversionSequence::getToType(), clang::InitializedEntity::getType(), clang::Expr::getValueKind(), clang::Expr::hasAnyTypeDependentArguments(), hasCompatibleArrayTypes(), clang::ASTContext::hasSameUnqualifiedType(), clang::RecordDecl::hasUninitializedExplicitInitFields(), clang::ICK_Array_To_Pointer, clang::ICK_Lvalue_To_Rvalue, clang::ICK_Writeback_Conversion, clang::InitializationKind::IK_Copy, clang::InitializationKind::IK_Default, clang::InitializationKind::IK_Direct, clang::InitializationKind::IK_Value, clang::Initializer, clang::ASTContext::IntTy, clang::Type::isArrayParameterType(), clang::Type::isArrayType(), clang::ImplicitConversionSequence::isBad(), clang::Type::isBooleanType(), clang::Type::isCharType(), clang::Type::isDependentType(), clang::Sema::IsDerivedFrom(), isExprAnUnaddressableFunction(), clang::Type::isExtVectorType(), clang::ActionResult< PtrTy, Compress >::isInvalid(), isLibstdcxxPointerReturnFalseHack(), clang::QualType::isNull(), clang::Type::isNullPtrType(), clang::InitializedEntity::isParameterKind(), clang::Type::isRecordType(), clang::Type::isReferenceType(), clang::ImplicitConversionSequence::isStandard(), IsStringInit(), IsWideCharCompatible(), MaybeProduceObjCObject(), NormalSequence, clang::Sema::ObjC(), clang::Decl::OBJC_TQ_Out, clang::OR_Deleted, clang::ASTContext::OverloadTy, clang::Sema::ResolveAddressOfOverloadedFunction(), clang::StandardConversionSequence::Second, clang::StandardConversionSequence::setAllToTypes(), clang::StandardConversionSequence::setAsIdentityConversion(), SetFailed(), setSequenceKind(), clang::ImplicitConversionSequence::setStandard(), SIF_IncompatWideStringIntoWideChar, SIF_NarrowStringIntoWideChar, SIF_None, SIF_Other, SIF_PlainStringIntoUTF8Char, SIF_UTF8StringIntoPlainChar, SIF_WideStringIntoChar, clang::ImplicitConversionSequence::Standard, TryArrayCopy(), TryConstructorInitialization(), TryDefaultInitialization(), clang::Sema::TryImplicitConversion(), TryListInitialization(), tryObjCWritebackConversion(), TryOCLSamplerInitialization(), TryOCLZeroOpaqueTypeInitialization(), TryOrBuildParenListInitialization(), TryReferenceInitialization(), TryStringLiteralInitialization(), TryUserDefinedConversion(), and TryValueInitialization().

Referenced by InitializationSequence(), TryArrayCopy(), and TryListInitialization().

◆ isAmbiguous() bool InitializationSequence::isAmbiguous ( ) const

Determine whether this initialization failed due to an ambiguity.

Definition at line 3835 of file SemaInit.cpp.

References Failed(), FK_AddressOfOverloadFailed, FK_AddressOfUnaddressableFunction, FK_ArrayNeedsInitList, FK_ArrayNeedsInitListOrStringLiteral, FK_ArrayNeedsInitListOrWideStringLiteral, FK_ArrayTypeMismatch, FK_ConstructorOverloadFailed, FK_ConversionFailed, FK_ConversionFromPropertyFailed, FK_DefaultInitOfConst, FK_DesignatedInitForNonAggregate, FK_ExplicitConstructor, FK_IncompatWideStringIntoWideChar, FK_Incomplete, FK_InitListBadDestinationType, FK_ListConstructorOverloadFailed, FK_ListInitializationFailed, FK_NarrowStringIntoWideCharArray, FK_NonConstantArrayInit, FK_NonConstLValueReferenceBindingToBitfield, FK_NonConstLValueReferenceBindingToMatrixElement, FK_NonConstLValueReferenceBindingToTemporary, FK_NonConstLValueReferenceBindingToUnrelated, FK_NonConstLValueReferenceBindingToVectorElement, FK_ParenthesizedListInitFailed, FK_ParenthesizedListInitForReference, FK_ParenthesizedListInitForScalar, FK_PlaceholderType, FK_PlainStringIntoUTF8Char, FK_ReferenceAddrspaceMismatchTemporary, FK_ReferenceBindingToInitList, FK_ReferenceInitDropsQualifiers, FK_ReferenceInitFailed, FK_ReferenceInitOverloadFailed, FK_RValueReferenceBindingToLValue, FK_TooManyInitsForReference, FK_TooManyInitsForScalar, FK_UserConversionOverloadFailed, FK_UTF8StringIntoPlainChar, FK_VariableLengthArrayHasInitializer, FK_WideStringIntoCharArray, getFailureKind(), and clang::OR_Ambiguous.

Referenced by TryClassUnification().

◆ isConstructorInitialization() bool InitializationSequence::isConstructorInitialization ( ) const ◆ isDirectReferenceBinding() bool InitializationSequence::isDirectReferenceBinding ( ) const ◆ operator bool() clang::InitializationSequence::operator bool ( ) const inlineexplicit ◆ Perform()

Perform the actual initialization of the given entity based on the computed initialization sequence.

Parameters
S the semantic analysis object. Entity the entity being initialized. Kind the kind of initialization being performed. Args the argument(s) provided for initialization, ownership of which is transferred into the routine. ResultType if non-NULL, will be set to the type of the initialized object, which is the type of the declaration in most cases. However, when the initialized object is a variable of incomplete array type and the initializer is an initializer list, this type will be set to the completed array type.
Returns
an expression that performs the actual object initialization, if the initialization is well-formed. Otherwise, emits diagnostics and returns an invalid expression.

Definition at line 7639 of file SemaInit.cpp.

References clang::Sema::ActOnParenListExpr(), bool, clang::Sema::BuildCXXConstructExpr(), clang::Sema::BuildCXXMemberCallExpr(), clang::Type::castAs(), clang::Sema::checkAddressOfFunctionIsAvailable(), clang::Sema::CheckAddressOfMemberAccess(), CheckC23ConstexprInitConversion(), clang::Sema::CheckConstructorAccess(), clang::Sema::CheckDerivedToBaseConversion(), clang::Sema::CheckDestructorAccess(), clang::Sema::CheckExceptionSpecCompatibility(), CheckForNullPointerDereference(), checkIndirectCopyRestoreSource(), clang::Sema::checkInitializerLifetime(), clang::Sema::CheckMemberOperatorAccess(), CheckMoveOnConstruction(), clang::Sema::CheckPlaceholderExpr(), clang::Sema::CheckSingleAssignmentConstraints(), CheckStringInit(), clang::Sema::CheckTransparentUnionArgumentConstraints(), clang::Sema::Cleanup, clang::Sema::Compatible, clang::Complete, clang::Sema::CompleteConstructorCall(), clang::Sema::Context, CopyObject(), clang::ImplicitCastExpr::Create(), clang::Sema::CreateBuiltinArraySubscriptExpr(), clang::FixItHint::CreateInsertion(), clang::Sema::CreateMaterializeTemporaryExpr(), clang::CStyleCast, clang::Sema::CurFPFeatureOverrides(), D, DependentSequence, clang::Destructor, clang::SemaBase::Diag(), Diagnose(), clang::Sema::DiagnoseAssignmentResult(), DiagnoseNarrowingInInitList(), clang::Sema::DiagnoseUseOfDecl(), clang::Sema::DiscardMisalignedMemberAddress(), E, clang::InitializedEntity::EK_Base, clang::InitializedEntity::EK_Delegating, clang::InitializedEntity::EK_Member, clang::InitializedEntity::EK_Parameter_CF_Audited, clang::InitializedEntity::EK_ParenAggInitMember, clang::InitializedEntity::EK_Result, clang::InitializedEntity::EK_Variable, clang::Expr::EvaluateAsRValue(), clang::Evaluated, clang::ExprError(), Failed(), clang::Sema::FixOverloadedFunctionReference(), clang::InitializationSequence::Step::F::FoundDecl, clang::InitializationSequence::Step::F::Function, clang::InitializationSequence::Step::Function, clang::FunctionalCast, clang::ActionResult< PtrTy, Compress >::get(), clang::QualType::getAddressSpace(), clang::ActionResult< PtrTy, Compress >::getAs(), clang::Type::getAs(), clang::TypeLoc::getAs(), clang::ASTContext::getAsArrayType(), clang::ASTContext::getAsConstantArrayType(), clang::Type::getAsCXXRecordDecl(), clang::ASTContext::getAsIncompleteArrayType(), getAssignmentAction(), clang::SourceRange::getBegin(), clang::DeclaratorDecl::getBeginLoc(), clang::Decl::getBeginLoc(), clang::Stmt::getBeginLoc(), clang::ASTContext::getConstantArrayType(), clang::InitializedEntity::getDecl(), clang::CXXRecordDecl::getDefinition(), clang::ASTContext::getDependentSizedArrayType(), clang::SourceRange::getEnd(), clang::Expr::getExprLoc(), clang::InitListExpr::getInits(), clang::APValue::getInt(), clang::ASTContext::getIntWidth(), clang::InitializedEntity::getKind(), getKind(), clang::Sema::getLangOpts(), clang::InitListExpr::getLBraceLoc(), clang::ASTContext::getLValueReferenceType(), clang::QualType::getNonLValueExprType(), clang::QualType::getNonReferenceType(), clang::InitListExpr::getNumInits(), clang::Expr::getObjectKind(), clang::Sema::getOpenCLOptions(), clang::Type::getPointeeOrArrayElementType(), clang::InitListExpr::getRBraceLoc(), clang::FunctionDecl::getReturnType(), clang::ASTContext::getRValueReferenceType(), clang::ASTContext::getSizeType(), clang::Stmt::getSourceRange(), clang::MaterializeTemporaryExpr::getStorageDuration(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::ValueDecl::getType(), clang::Expr::getType(), clang::InitializedEntity::getType(), clang::QualType::getTypePtr(), clang::InitializedEntity::getTypeSourceInfo(), clang::QualType::getUnqualifiedType(), clang::Expr::getValueKind(), clang::InitializationSequence::Step::F::HadMultipleCandidates, clang::QualType::hasAddressSpace(), clang::Decl::hasAttr(), clang::ASTContext::hasSameType(), clang::InitializationSequence::Step::ICS, clang::Expr::IgnoreParens(), clang::InitializationKind::IK_Copy, clang::InitializationKind::IK_Direct, clang::InitializationKind::IK_DirectList, clang::InitializationKind::IK_Value, clang::Sema::ImpCastExprToType(), clang::Implicit, clang::Init, clang::InitializedEntity::InitializeTemporary(), initializingConstexprVariable(), clang::EnterExpressionEvaluationContext::InitList, clang::Type::isArrayType(), clang::Type::isAtomicType(), clang::OpenCLOptions::isAvailableOption(), clang::Type::isDependentType(), clang::QualType::isDestructedType(), clang::Type::isEventT(), clang::Type::isExtVectorType(), clang::Type::isFunctionProtoType(), clang::Type::isIncompleteArrayType(), clang::Type::isIntegerType(), clang::ActionResult< PtrTy, Compress >::isInvalid(), clang::Expr::isLValue(), clang::Type::isLValueReferenceType(), clang::APValue::isNullPointer(), clang::Type::isOCLIntelSubgroupAVCType(), clang::InitializedEntity::isParameterKind(), clang::InitializedEntity::isParamOrTemplateParamKind(), clang::Expr::isPRValue(), clang::Type::isQueueT(), clang::Type::isRecordType(), clang::Type::isReferenceType(), clang::Type::isSamplerT(), clang::ReferenceType::isSpelledAsLValue(), clang::Sema::isStdInitializerList(), clang::InitializationSequence::Step::Kind, Loc, clang::Sema::LookupDestructor(), clang::Sema::MarkFunctionReferenced(), clang::Sema::MaybeBindToTemporary(), clang::Normal, clang::ASTContext::OCLSamplerTy, clang::opencl_global, clang::OtherCast, clang::SemaBase::PDiag(), PerformConstructorInitialization(), clang::Sema::PerformImplicitConversion(), clang::Sema::PerformQualificationConversion(), Range, clang::Sema::RequireNonAbstractType(), clang::Result, clang::SD_Automatic, clang::CleanupInfo::setExprNeedsCleanups(), clang::InitListExpr::setSyntacticForm(), clang::Expr::setType(), clang::Expr::setValueKind(), shouldBindAsTemporary(), shouldDestroyEntity(), SK_ArrayInit, SK_ArrayLoopIndex, SK_ArrayLoopInit, SK_AtomicConversion, SK_BindReference, SK_BindReferenceToTemporary, SK_CAssignment, SK_CastDerivedToBaseLValue, SK_CastDerivedToBasePRValue, SK_CastDerivedToBaseXValue, SK_ConstructorInitialization, SK_ConstructorInitializationFromList, SK_ConversionSequence, SK_ConversionSequenceNoNarrowing, SK_ExtraneousCopyToTemporary, SK_FinalCopy, SK_FunctionReferenceConversion, SK_GNUArrayInit, SK_ListInitialization, SK_ObjCObjectConversion, SK_OCLSamplerInit, SK_OCLZeroOpaqueType, SK_ParenthesizedArrayInit, SK_ParenthesizedListInit, SK_PassByIndirectCopyRestore, SK_PassByIndirectRestore, SK_ProduceObjCObject, SK_QualificationConversionLValue, SK_QualificationConversionPRValue, SK_QualificationConversionXValue, SK_ResolveAddressOfOverloadedFunction, SK_RewrapInitList, SK_StdInitializerList, SK_StdInitializerListConstructorCall, SK_StringInit, SK_UnwrapInitList, SK_UserConversion, SK_ZeroInitialization, step_begin(), step_end(), clang::T, TryOrBuildParenListInitialization(), clang::InitializationSequence::Step::Type, updateGNUCompoundLiteralRValue(), clang::Expr::EvalResult::Val, clang::VK_LValue, clang::VK_PRValue, clang::VK_XValue, clang::QualType::withConst(), and clang::InitializationSequence::Step::WrappingSyntacticList.

Referenced by clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildBaseInitializer(), clang::Sema::BuildCaptureInit(), clang::Sema::BuildCompoundLiteralExpr(), clang::Sema::buildCoroutinePromise(), clang::Sema::BuildCXXNew(), clang::Sema::BuildCXXTypeConstructExpr(), clang::Sema::BuildDelegatingInitializer(), clang::Sema::BuildExceptionDeclaration(), BuildImplicitBaseInitializer(), clang::Sema::buildLambdaInitCaptureInitialization(), clang::Sema::BuildMemberInitializer(), clang::Sema::CheckTemplateArgument(), ConvertForConditional(), clang::Sema::ConvertParamDefaultArgument(), clang::Sema::CreateBuiltinBinOp(), clang::Sema::FindCompositePointerType(), clang::Sema::tryConvertExprToType(), TryOrBuildParenListInitialization(), and TryStaticImplicitCast().

◆ RewrapReferenceInitList() ◆ SetFailed() void clang::InitializationSequence::SetFailed ( FailureKind  Failure ) inline

Note that this initialization sequence failed.

Definition at line 1397 of file Initialization.h.

References FailedSequence, FK_Incomplete, and clang::QualType::isNull().

Referenced by InitializeFrom(), ResolveOverloadedFunctionForReferenceBinding(), setIncompleteTypeFailure(), TryConstructorInitialization(), TryDefaultInitialization(), TryListInitialization(), TryOrBuildParenListInitialization(), TryReferenceInitializationCore(), TryReferenceListInitialization(), and TryValueInitialization().

◆ setIncompleteTypeFailure() void clang::InitializationSequence::setIncompleteTypeFailure ( QualType  IncompleteType ) inline ◆ SetOverloadFailure() ◆ setSequenceKind() void clang::InitializationSequence::setSequenceKind ( enum SequenceKind  SK ) inline ◆ SetZeroInitializationFixit() void clang::InitializationSequence::SetZeroInitializationFixit ( const std::string &  Fixit, SourceLocation  L  ) inline ◆ step_begin() step_iterator clang::InitializationSequence::step_begin ( ) const inline ◆ step_end() ◆ steps() step_range clang::InitializationSequence::steps ( ) const inline

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


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4