Lines Matching defs:Entity

192 static bool initializingConstexprVariable(const InitializedEntity &Entity) {
193 Decl *D = Entity.getDecl();
194 const InitializedEntity *Parent = &Entity;
329 void CheckImplicitInitList(const InitializedEntity &Entity,
333 void CheckExplicitInitList(const InitializedEntity &Entity,
337 void CheckListElementTypes(const InitializedEntity &Entity,
344 void CheckSubElementType(const InitializedEntity &Entity,
350 void CheckComplexType(const InitializedEntity &Entity,
355 void CheckScalarType(const InitializedEntity &Entity,
360 void CheckReferenceType(const InitializedEntity &Entity,
365 void CheckVectorType(const InitializedEntity &Entity,
369 void CheckStructUnionTypes(const InitializedEntity &Entity,
377 void CheckArrayType(const InitializedEntity &Entity,
383 bool CheckDesignatedInitializer(const InitializedEntity &Entity,
411 const InitializedEntity &Entity);
500 void FillInEmptyInitializations(const InitializedEntity &Entity,
504 bool CheckFlexibleArrayInit(const InitializedEntity &Entity,
507 void CheckEmptyInitializable(const InitializedEntity &Entity,
510 Expr *HandleEmbed(EmbedExpr *Embed, const InitializedEntity &Entity) {
520 if (Entity.getKind() == InitializedEntity::EK_ArrayElement) {
522 SemaRef.Context.getAsArrayType(Entity.getParent()->getType());
548 Sema &S, const InitializedEntity &Entity, InitListExpr *IL, QualType &T,
552 InitListChecker(Sema &S, const InitializedEntity &Entity, InitListExpr *IL,
555 : InitListChecker(S, Entity, IL, T, /*VerifyOnly=*/true,
570 const InitializedEntity &Entity) {
582 Entity.getType()->getBaseElementTypeUnsafe()->isRecordType();
605 InitializationSequence InitSeq(SemaRef, Entity, Kind, SubInit);
639 SemaRef, Entity,
648 if (Entity.getKind() == InitializedEntity::EK_Member)
649 SemaRef.Diag(Entity.getDecl()->getLocation(),
651 else if (Entity.getKind() == InitializedEntity::EK_ArrayElement)
659 InitSeq.Diagnose(SemaRef, Entity, Kind, SubInit);
660 if (Entity.getKind() == InitializedEntity::EK_Member)
661 SemaRef.Diag(Entity.getDecl()->getLocation(),
663 << /*field*/1 << Entity.getDecl();
664 else if (Entity.getKind() == InitializedEntity::EK_ArrayElement) {
666 Entity.getParent() &&
667 Entity.getParent()->isVariableLengthArrayNew();
670 << Entity.getElementIndex();
678 : InitSeq.Perform(SemaRef, Entity, Kind, SubInit);
681 void InitListChecker::CheckEmptyInitializable(const InitializedEntity &Entity,
688 PerformEmptyInit(Loc, Entity);
845 InitListChecker::FillInEmptyInitializations(const InitializedEntity &Entity,
883 FillInEmptyInitForField(0, ILE->getInitializedFieldInUnion(), Entity, ILE,
905 FillInEmptyInitForBase(Init, Base, Entity, ILE, RequiresSecondPass,
918 FillInEmptyInitForField(Init, Field, Entity, ILE, RequiresSecondPass,
936 InitializedEntity ElementEntity = Entity;
945 if (Entity.isVariableLengthArrayNew())
948 0, Entity);
953 0, Entity);
1042 Sema &S, const InitializedEntity &Entity, InitListExpr *IL, QualType &T,
1059 CheckExplicitInitList(Entity, IL, T, FullyStructuredList,
1064 FillInEmptyInitializations(Entity, FullyStructuredList, RequiresSecondPass,
1067 FillInEmptyInitializations(Entity, FullyStructuredList,
1106 /// Determine whether Entity is an entity for which it is idiomatic to elide
1108 static bool isIdiomaticBraceElisionEntity(const InitializedEntity &Entity) {
1117 if (!Entity.getParent())
1121 if (Entity.getKind() == InitializedEntity::EK_Base) {
1123 Entity.getParent()->getType()->castAs<RecordType>()->getDecl();
1129 if (Entity.getKind() == InitializedEntity::EK_Member) {
1131 Entity.getParent()->getType()->castAs<RecordType>()->getDecl();
1152 void InitListChecker::CheckImplicitInitList(const InitializedEntity &Entity,
1186 CheckListElementTypes(Entity, ParentIList, T,
1207 !isIdiomaticBraceElisionEntity(Entity)) {
1229 /// Warn that \p Entity was of scalar type and was initialized by a
1231 static void warnBracedScalarInit(Sema &S, const InitializedEntity &Entity,
1241 switch (Entity.getKind()) {
1257 if (Entity.getParent())
1289 << Entity.getType()->isSizelessBuiltinType() << Braces
1300 void InitListChecker::CheckExplicitInitList(const InitializedEntity &Entity,
1305 CheckListElementTypes(Entity, IList, T, /*SubobjectIsDesignatorContext=*/true,
1358 warnBracedScalarInit(SemaRef, Entity, IList->getSourceRange());
1381 void InitListChecker::CheckListElementTypes(const InitializedEntity &Entity,
1392 CheckComplexType(Entity, IList, DeclType, Index,
1395 CheckScalarType(Entity, IList, DeclType, Index,
1398 CheckVectorType(Entity, IList, DeclType, Index,
1412 CheckStructUnionTypes(Entity, IList, DeclType, Bases, RD->field_begin(),
1419 CheckArrayType(Entity, IList, DeclType, Zero,
1430 CheckReferenceType(Entity, IList, DeclType, Index,
1439 CheckScalarType(Entity, IList, DeclType, Index, StructuredList,
1456 void InitListChecker::CheckSubElementType(const InitializedEntity &Entity,
1466 return CheckReferenceType(Entity, IList, ElemType, Index,
1501 (ElemType->isExtVectorType() && !Entity.getType()->isExtVectorType())
1503 : Entity;
1542 expr = HandleEmbed(Embed, Entity);
1568 return CheckScalarType(Entity, IList, ElemType, Index,
1581 initializingConstexprVariable(Entity));
1630 CheckImplicitInitList(Entity, IList, ElemType, Index, StructuredList,
1653 SemaRef.PerformCopyInitialization(Entity, SourceLocation(), expr,
1665 void InitListChecker::CheckComplexType(const InitializedEntity &Entity,
1680 return CheckScalarType(Entity, IList, DeclType, Index, StructuredList,
1692 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity);
1701 void InitListChecker::CheckScalarType(const InitializedEntity &Entity,
1738 CheckScalarType(Entity, SubIList, DeclType, Index, StructuredList,
1752 expr = HandleEmbed(Embed, Entity);
1757 if (SemaRef.CanPerformCopyInitialization(Entity, expr))
1763 SemaRef.PerformCopyInitialization(Entity, expr->getBeginLoc(), expr,
1788 void InitListChecker::CheckReferenceType(const InitializedEntity &Entity,
1821 if (SemaRef.CanPerformCopyInitialization(Entity,expr))
1827 SemaRef.PerformCopyInitialization(Entity, expr->getBeginLoc(), expr,
1845 void InitListChecker::CheckVectorType(const InitializedEntity &Entity,
1858 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity),
1870 if (SemaRef.CanPerformCopyInitialization(Entity, Init))
1876 SemaRef.PerformCopyInitialization(Entity, Init->getBeginLoc(), Init,
1900 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity);
1918 const VectorType *T = Entity.getType()->castAs<VectorType>();
1957 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity);
2028 const InitializedEntity &Entity,
2030 QualType InitType = Entity.getType();
2031 const InitializedEntity *Parent = &Entity;
2054 void InitListChecker::CheckArrayType(const InitializedEntity &Entity,
2071 if (canInitializeArrayWithEmbedDataString(IList->inits(), Entity,
2090 initializingConstexprVariable(Entity));
2152 if (CheckDesignatedInitializer(Entity, IList, DIE, 0,
2180 SemaRef.Context, StructuredIndex, Entity);
2207 if (maxElements == Zero && !Entity.isVariableLengthArrayNew()) {
2222 Entity.isVariableLengthArrayNew())
2224 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity),
2229 bool InitListChecker::CheckFlexibleArrayInit(const InitializedEntity &Entity,
2242 } else if (Entity.getKind() != InitializedEntity::EK_Variable) {
2245 } else if (cast<VarDecl>(Entity.getDecl())->hasLocalStorage()) {
2268 const InitializedEntity &Entity, InitListExpr *IList, QualType DeclType,
2318 InitializedEntity::InitializeMember(*Field, &Entity),
2370 SemaRef.Context, &Base, false, &Entity);
2414 Entity, IList, DIE, 0, DeclType, &Field, nullptr, Index,
2508 InitializedEntity::InitializeMember(*Field, &Entity);
2556 InitializedEntity::InitializeMember(*Field, &Entity),
2580 if (CheckFlexibleArrayInit(Entity, IList->getInit(Index), *Field,
2588 InitializedEntity::InitializeMember(*Field, &Entity);
2710 InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity,
2733 InitializationSequence Seq(SemaRef, Entity, Kind, Init,
2738 : Seq.Perform(SemaRef, Entity, Kind, Init);
2757 CheckSubElementType(Entity, IList, CurrentObjectType, Index, StructuredList,
3065 if (!Invalid && CheckFlexibleArrayInit(Entity, DIE->getInit(), *Field,
3081 InitializedEntity::InitializeMember(*Field, &Entity);
3100 InitializedEntity::InitializeMember(*Field, &Entity);
3139 CheckStructUnionTypes(Entity, IList, CurrentObjectType, NoBases, Field,
3302 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity);
3336 CheckArrayType(Entity, IList, CurrentObjectType, DesignatedStartIndex,
3470 const InitializedEntity &Entity, InitListExpr *From) {
3471 QualType Type = Entity.getType();
3472 InitListChecker Check(*this, Entity, From, Type, /*VerifyOnly=*/true,
4158 const InitializedEntity &Entity) {
4159 if (Entity.getKind() != InitializedEntity::EK_Variable)
4162 VarDecl *VD = cast<VarDecl>(Entity.getDecl());
4170 Sequence.AddZeroInitializationStep(Entity.getType());
4179 const InitializedEntity &Entity) {
4184 if (Entity.isParameterKind()) {
4185 if (!Entity.isParameterConsumed())
4188 assert(Entity.getType()->isObjCRetainableType() &&
4190 Sequence.AddProduceObjCObjectStep(Entity.getType());
4196 } else if (Entity.getKind() == InitializedEntity::EK_Result ||
4197 Entity.getKind() == InitializedEntity::EK_StmtExprResult) {
4198 if (!Entity.getType()->isObjCRetainableType())
4201 Sequence.AddProduceObjCObjectStep(Entity.getType());
4207 const InitializedEntity &Entity, Expr *Initializer,
4218 InitializedEntity::InitializeElement(S.Context, 0, Entity);
4229 Sequence.AddArrayInitLoopStep(Entity.getType(), InitEltT);
4233 const InitializedEntity &Entity,
4407 const InitializedEntity &Entity,
4430 !(Entity.getKind() != InitializedEntity::EK_Base &&
4431 Entity.getKind() != InitializedEntity::EK_Delegating &&
4432 Entity.getKind() !=
4570 Sequence.RewrapReferenceInitList(Entity.getType(), ILE);
4594 Entity.getType().isConstQualified()) {
4596 if (!maybeRecoverWithZeroInitialization(S, Sequence, Entity))
4658 const InitializedEntity &Entity,
4669 const InitializedEntity &Entity,
4676 const InitializedEntity &Entity,
4687 if (Entity.getKind() == InitializedEntity::EK_CompoundLiteralInit) {
4692 QualType DestType = Entity.getType();
4719 TryReferenceInitializationCore(S, Entity, Kind, Initializer, cv1T1, T1,
4779 const InitializedEntity &Entity,
4784 QualType DestType = Entity.getType();
4794 TryReferenceListInitialization(S, Entity, Kind, InitList, Sequence,
4839 TryConstructorInitialization(S, Entity, Kind, InitListAsExpr, DestType,
4858 Entity.getKind() == InitializedEntity::EK_Variable &&
4859 isa<DecompositionDecl>(Entity.getDecl())) {
4866 Entity, SubInit[0], DestType, Sequence,
4881 Sequence.InitializeFrom(S, Entity, SubKind, SubInit,
4889 Sequence.RewrapReferenceInitList(Entity.getType(), InitList);
4908 TryValueInitialization(S, Entity, Kind, Sequence, InitList);
4921 TryConstructorInitialization(S, Entity, Kind, InitListAsExpr, DestType,
4969 Sequence.RewrapReferenceInitList(Entity.getType(), InitList);
4998 Sequence.InitializeFrom(S, Entity, SubKind, SubInit,
5002 Sequence.RewrapReferenceInitList(Entity.getType(), InitList);
5007 InitListChecker CheckInitList(S, Entity, InitList,
5021 Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind,
5024 QualType DestType = Entity.getType();
5201 const InitializedEntity &Entity,
5205 static void TryReferenceInitialization(Sema &S, const InitializedEntity &Entity,
5210 QualType DestType = Entity.getType();
5226 TryReferenceInitializationCore(S, Entity, Kind, Initializer, cv1T1, T1,
5244 const InitializedEntity &Entity,
5253 QualType DestType = Entity.getType();
5323 S, Entity, Kind, Initializer, /*AllowRValues*/ isRValueRef,
5415 CheckCXX98CompatAccessibleCopy(S, Entity, Initializer);
5466 S, Entity, Kind, Initializer, /*AllowRValues*/ true,
5569 const InitializedEntity &Entity,
5573 Sequence.AddStringInitStep(Entity.getType());
5578 const InitializedEntity &Entity,
5588 QualType T = Entity.getType();
5620 Sequence.AddZeroInitializationStep(Entity.getType());
5648 S, Entity, Kind, Args, T, Entity.getType(), Sequence, InitListSyntax);
5652 Sequence.AddZeroInitializationStep(Entity.getType());
5657 const InitializedEntity &Entity,
5665 QualType DestType = S.Context.getBaseElementType(Entity.getType());
5671 TryConstructorInitialization(S, Entity, Kind, {}, DestType,
5672 Entity.getType(), Sequence);
5682 if (!maybeRecoverWithZeroInitialization(S, Sequence, Entity))
5689 Sequence.AddZeroInitializationStep(Entity.getType());
5695 Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind,
5739 S.getASTContext().getAsArrayType(Entity.getType())) {
5748 S.getASTContext().getAsConstantArrayType(Entity.getType())) {
5750 ResultType = Entity.getType();
5752 S.getASTContext().getAsVariableArrayType(Entity.getType())) {
5762 assert(Entity.getType()->isIncompleteArrayType());
5771 S.getASTContext(), EntityIndexToProcess, Entity);
5778 if (ArrayLength > Args.size() || Entity.isVariableLengthArrayNew()) {
5780 S.getASTContext(), Args.size(), Entity);
5792 } else if (auto *RT = Entity.getType()->getAs<RecordType>()) {
5807 S.getASTContext(), &Base, false, &Entity);
5918 ResultType = Entity.getType();
5926 QualType T = Entity.getType();
5938 Sequence.AddParenthesizedListInitStep(Entity.getType());
6146 const InitializedEntity &Entity,
6149 Entity.getKind() == InitializedEntity::EK_Result &&
6150 Entity.getType()->isPointerType() &&
6263 const InitializedEntity &Entity,
6276 if (!S.ObjC().isObjCWritebackConversion(ArgType, Entity.getType(),
6283 if (ParmVarDecl *param = cast_or_null<ParmVarDecl>(Entity.getDecl()))
6304 Sequence.AddPassByIndirectCopyRestoreStep(Entity.getType(), ShouldCopy);
6369 Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind,
6373 InitializeFrom(S, Entity, Kind, Args, TopLevelOfInitList,
6390 static bool canPerformArrayCopy(const InitializedEntity &Entity) {
6391 switch (Entity.getKind()) {
6402 return isa<DecompositionDecl>(Entity.getDecl());
6408 return Entity.isImplicitMemberInitializer();
6413 if (auto *E = Entity.getParent())
6425 const InitializedEntity &Entity,
6453 QualType DestType = Entity.getType();
6483 TryListInitialization(S, Entity, Kind, InitList, *this,
6493 VarDecl *Var = dyn_cast_or_null<VarDecl>(Entity.getDecl());
6518 TryReferenceInitialization(S, Entity, Kind, Args[0], *this,
6526 TryValueInitialization(S, Entity, Kind, *this);
6532 TryDefaultInitialization(S, Entity, Kind, *this);
6553 TryStringLiteralInitialization(S, Entity, Kind, Initializer, *this);
6579 Entity.getType()) &&
6580 canPerformArrayCopy(Entity)) {
6581 TryArrayCopy(S, Kind, Entity, Initializer, DestType, *this,
6605 Entity.getKind() == InitializedEntity::EK_Member &&
6607 TryListInitialization(S, Entity, Kind, cast<InitListExpr>(Initializer),
6612 TryOrBuildParenListInitialization(S, Entity, Kind, Args, *this,
6627 Entity.isParameterKind();
6638 tryObjCWritebackConversion(S, *this, Entity, Initializer)) {
6647 MaybeProduceObjCObject(S, *this, Entity);
6664 TryConstructorInitialization(S, Entity, Kind, Args, DestType, DestType,
6696 TryOrBuildParenListInitialization(S, Entity, Kind, Args, *this,
6774 MaybeProduceObjCObject(S, *this, Entity);
6776 AddAtomicConversionStep(Entity.getType());
6814 if (ParmVarDecl *Param = cast_or_null<ParmVarDecl>(Entity.getDecl()))
6830 if (isLibstdcxxPointerReturnFalseHack(S, Entity, Initializer))
6831 AddZeroInitializationStep(Entity.getType());
6845 MaybeProduceObjCObject(S, *this, Entity);
6857 static AssignmentAction getAssignmentAction(const InitializedEntity &Entity,
6859 switch(Entity.getKind()) {
6868 if (Entity.getDecl() &&
6869 isa<ObjCMethodDecl>(Entity.getDecl()->getDeclContext()))
6875 if (Entity.getDecl() &&
6876 isa<ObjCMethodDecl>(Entity.getDecl()->getDeclContext()))
6914 static bool shouldBindAsTemporary(const InitializedEntity &Entity) {
6915 switch (Entity.getKind()) {
6948 static bool shouldDestroyEntity(const InitializedEntity &Entity) {
6949 switch (Entity.getKind()) {
6981 static SourceLocation getInitializationLoc(const InitializedEntity &Entity,
6983 switch (Entity.getKind()) {
6986 return Entity.getReturnLoc();
6989 return Entity.getThrowLoc();
6993 return Entity.getDecl()->getLocation();
6996 return Entity.getCaptureLoc();
7028 /// \param Entity The entity being initialized.
7041 const InitializedEntity &Entity,
7054 SourceLocation Loc = getInitializationLoc(Entity, CurInit.get());
7082 << (int)Entity.getKind() << CurInitExpr->getType()
7092 << (int)Entity.getKind()
7100 << (int)Entity.getKind() << CurInitExpr->getType()
7112 S.CheckConstructorAccess(Loc, Constructor, Best->FoundDecl, Entity,
7182 if (!CurInit.isInvalid() && shouldBindAsTemporary(Entity))
7191 const InitializedEntity &Entity,
7199 SourceLocation Loc = getInitializationLoc(Entity, CurInitExpr);
7218 << OR << (int)Entity.getKind() << CurInitExpr->getType()
7224 Best->FoundDecl, Entity, Diag);
7246 const InitializedEntity &Entity) {
7247 if (Entity.isParamOrTemplateParamKind() && Entity.getDecl()) {
7248 if (Entity.getDecl()->getLocation().isInvalid())
7251 if (Entity.getDecl()->getDeclName())
7252 S.Diag(Entity.getDecl()->getLocation(), diag::note_parameter_named_here)
7253 << Entity.getDecl()->getDeclName();
7255 S.Diag(Entity.getDecl()->getLocation(), diag::note_parameter_here);
7257 else if (Entity.getKind() == InitializedEntity::EK_RelatedResult &&
7258 Entity.getMethodDecl())
7259 S.Diag(Entity.getMethodDecl()->getLocation(),
7261 << Entity.getMethodDecl()->getDeclName();
7266 static bool isExplicitTemporary(const InitializedEntity &Entity,
7269 switch (Entity.getKind()) {
7292 const InitializedEntity &Entity,
7341 Entity.getType(), Args.front()->getType(), Kind.getLocation());
7350 if (isExplicitTemporary(Entity, Kind, NumArgs)) {
7371 TypeSourceInfo *TSInfo = Entity.getTypeSourceInfo();
7373 TSInfo = S.Context.getTrivialTypeSourceInfo(Entity.getType(), Loc);
7389 Entity.getType().getNonLValueExprType(S.Context), TSInfo,
7397 if (Entity.getKind() == InitializedEntity::EK_Base) {
7398 ConstructKind = Entity.getBaseSpecifier()->isVirtual()
7401 } else if (Entity.getKind() == InitializedEntity::EK_Delegating) {
7415 if (Entity.allowsNRVO())
7442 S.CheckConstructorAccess(Loc, Constructor, Step.Function.FoundDecl, Entity);
7446 if (const ArrayType *AT = S.Context.getAsArrayType(Entity.getType()))
7450 if (shouldBindAsTemporary(Entity))
7456 void Sema::checkInitializerLifetime(const InitializedEntity &Entity,
7458 return sema::checkInitLifetime(*this, Entity, Init);
7638 const InitializedEntity &Entity,
7643 Diagnose(S, Entity, Kind, Args);
7647 const Decl *D = Entity.getDecl();
7649 QualType DestType = Entity.getType();
7676 if (ResultType && !Entity.getType()->isDependentType() &&
7678 QualType DeclType = Entity.getType();
7692 if (auto *DD = dyn_cast_or_null<DeclaratorDecl>(Entity.getDecl())) {
7728 if (S.getLangOpts().CPlusPlus11 && Entity.getType()->isReferenceType() &&
7730 !Entity.isParamOrTemplateParamKind()) {
7740 isa<PredefinedExpr>(Args[0]) && Entity.getType()->isArrayType()) {
7749 QualType ETy = Entity.getType();
7755 Entity.getKind() == InitializedEntity::EK_Variable && Args.size() > 0) {
7758 << SourceRange(Entity.getDecl()->getBeginLoc(), Args[0]->getEndLoc());
7762 QualType DestType = Entity.getType().getNonReferenceType();
7763 // FIXME: Ugly hack around the fact that Entity.getType() is not
7764 // the same as Entity.getDecl()->getType() in cases involving type merging,
7767 *ResultType = Entity.getDecl() ? Entity.getDecl()->getType() :
7768 Entity.getType();
7841 if (Entity.getKind() == InitializedEntity::EK_Base ||
7842 Entity.getKind() == InitializedEntity::EK_Delegating)
7945 MTETy, CurInit.get(), Entity.getType()->isLValueReferenceType());
7965 if (!shouldBindAsTemporary(Entity))
7967 CurInit = CopyObject(S, Step->Type, Entity, CurInit,
7972 CurInit = CopyObject(S, Step->Type, Entity, CurInit,
8008 Entity);
8038 if (shouldBindAsTemporary(Entity))
8042 else if (CreatedObject && shouldDestroyEntity(Entity)) {
8112 Init, Step->Type, *Step->ICS, getAssignmentAction(Entity), CCK);
8122 DiagnoseNarrowingInInitList(S, *Step->ICS, SourceType, Entity.getType(),
8136 bool IsTemporary = !S.Context.hasSameType(Entity.getType(), Ty);
8138 InitializedEntity InitEntity = IsTemporary ? TempEntity : Entity;
8178 Entity.getType().getNonReferenceType());
8179 bool UseTemporary = Entity.getType()->isReferenceType();
8186 Entity,
8224 Entity.getType().getNonReferenceType());
8225 bool UseTemporary = Entity.getType()->isReferenceType();
8233 S, UseTemporary ? TempEntity : Entity, Kind,
8255 TypeSourceInfo *TSInfo = Entity.getTypeSourceInfo();
8261 Entity.getType().getNonLValueExprType(S.Context), TSInfo,
8278 Entity.getKind() == InitializedEntity::EK_Parameter_CF_Audited);
8286 Entity.isParameterKind() &&
8294 if (S.getLangOpts().C23 && initializingConstexprVariable(Entity)) {
8295 CheckC23ConstexprInitConversion(S, SourceType, Entity.getType(),
8304 if (Entity.getType()->getAs<PointerType>() &&
8315 getAssignmentAction(Entity, true),
8317 PrintInitLocationNote(S, Entity);
8320 PrintInitLocationNote(S, Entity);
8326 bool UpdateType = ResultType && Entity.getType()->isIncompleteArrayType();
8330 initializingConstexprVariable(Entity));
8473 if (shouldBindAsTemporary(Entity))
8499 if (Entity.isParameterKind()) {
8583 TryOrBuildParenListInitialization(S, Entity, Kind, Args, *this,
8587 if (shouldBindAsTemporary(Entity))
8600 S.checkInitializerLifetime(Entity, Init);
8603 if (InitializedEntity::EntityKind EK = Entity.getKind();
8606 cast<FieldDecl>(Entity.getDecl())->isBitField())
8608 cast<FieldDecl>(Entity.getDecl()), Init);
8612 Entity.getKind() == InitializedEntity::EK_Result);
8689 static void diagnoseListInit(Sema &S, const InitializedEntity &Entity,
8691 QualType DestType = Entity.getType();
8712 if (auto *D = Entity.getDecl())
8718 InitListChecker DiagnoseInitList(S, Entity, InitList, DestType,
8726 const InitializedEntity &Entity,
8732 QualType DestType = Entity.getType();
8777 << 1 << Entity.getType() << Args[0]->getSourceRange();
8867 << (Entity.getKind() == InitializedEntity::EK_Result)
8986 emitBadConversionNotes(S, Entity, Args[0]);
8992 << (int)Entity.getKind()
8999 emitBadConversionNotes(S, Entity, Args[0]);
9030 << 0 << Entity.getType() << Args[0]->getSourceRange();
9070 (Entity.getKind() == InitializedEntity::EK_Base ||
9071 Entity.getKind() == InitializedEntity::EK_Member ||
9072 Entity.getKind() == InitializedEntity::EK_ParenAggInitMember) &&
9083 if (Entity.getKind() == InitializedEntity::EK_Base) {
9088 << Entity.getType()
9092 = Entity.getBaseSpecifier()->getType()->castAs<RecordType>()
9101 << Entity.getName()
9103 S.Diag(Entity.getDecl()->getLocation(),
9107 = Entity.getType()->getAs<RecordType>())
9160 if (Entity.getKind() == InitializedEntity::EK_Member &&
9171 << Entity.getName();
9172 S.Diag(Entity.getDecl()->getLocation(), diag::note_previous_decl)
9173 << Entity.getName();
9174 } else if (const auto *VD = dyn_cast_if_present<VarDecl>(Entity.getDecl());
9192 diagnoseListInit(S, Entity, InitList);
9216 TryOrBuildParenListInitialization(S, Entity, Kind, Args, *this,
9223 << Entity.getType() << InitList->getSourceRange();
9227 PrintInitLocationNote(S, Entity);
9756 Sema::CanPerformCopyInitialization(const InitializedEntity &Entity,
9766 InitializationSequence Seq(*this, Entity, Kind, InitE);
9771 Sema::PerformCopyInitialization(const InitializedEntity &Entity,
9787 InitializationSequence Seq(*this, Entity, Kind, InitE, TopLevelOfInitList);
9791 Entity.isParameterKind() && Seq.isConstructorInitialization();
9793 if (llvm::is_contained(CurrentParameterCopyTypes, Entity.getType())) {
9820 CurrentParameterCopyTypes.push_back(Entity.getType());
9823 ExprResult Result = Seq.Perform(*this, Entity, Kind, InitE);
9842 TypeSourceInfo *TSInfo, const InitializedEntity &Entity,
10022 InitListChecker CheckInitList(*this, Entity, ListInit, Ty, ElementTypes);