Lines Matching refs:Entity
300 void CheckImplicitInitList(const InitializedEntity &Entity,
304 void CheckExplicitInitList(const InitializedEntity &Entity,
308 void CheckListElementTypes(const InitializedEntity &Entity,
315 void CheckSubElementType(const InitializedEntity &Entity,
321 void CheckComplexType(const InitializedEntity &Entity,
326 void CheckScalarType(const InitializedEntity &Entity,
331 void CheckReferenceType(const InitializedEntity &Entity,
336 void CheckVectorType(const InitializedEntity &Entity,
340 void CheckStructUnionTypes(const InitializedEntity &Entity,
348 void CheckArrayType(const InitializedEntity &Entity,
354 bool CheckDesignatedInitializer(const InitializedEntity &Entity,
382 const InitializedEntity &Entity);
471 void FillInEmptyInitializations(const InitializedEntity &Entity,
475 bool CheckFlexibleArrayInit(const InitializedEntity &Entity,
478 void CheckEmptyInitializable(const InitializedEntity &Entity,
483 Sema &S, const InitializedEntity &Entity, InitListExpr *IL, QualType &T,
487 InitListChecker(Sema &S, const InitializedEntity &Entity, InitListExpr *IL, in InitListChecker() argument
490 : InitListChecker(S, Entity, IL, T, /*VerifyOnly=*/true, in InitListChecker()
505 const InitializedEntity &Entity) { in PerformEmptyInit() argument
517 Entity.getType()->getBaseElementTypeUnsafe()->isRecordType(); in PerformEmptyInit()
541 InitializationSequence InitSeq(SemaRef, Entity, Kind, SubInit); in PerformEmptyInit()
575 SemaRef, Entity, in PerformEmptyInit()
584 if (Entity.getKind() == InitializedEntity::EK_Member) in PerformEmptyInit()
585 SemaRef.Diag(Entity.getDecl()->getLocation(), in PerformEmptyInit()
587 else if (Entity.getKind() == InitializedEntity::EK_ArrayElement) in PerformEmptyInit()
595 InitSeq.Diagnose(SemaRef, Entity, Kind, SubInit); in PerformEmptyInit()
596 if (Entity.getKind() == InitializedEntity::EK_Member) in PerformEmptyInit()
597 SemaRef.Diag(Entity.getDecl()->getLocation(), in PerformEmptyInit()
599 << /*field*/1 << Entity.getDecl(); in PerformEmptyInit()
600 else if (Entity.getKind() == InitializedEntity::EK_ArrayElement) { in PerformEmptyInit()
602 Entity.getParent() && in PerformEmptyInit()
603 Entity.getParent()->isVariableLengthArrayNew(); in PerformEmptyInit()
606 << Entity.getElementIndex(); in PerformEmptyInit()
614 : InitSeq.Perform(SemaRef, Entity, Kind, SubInit); in PerformEmptyInit()
617 void InitListChecker::CheckEmptyInitializable(const InitializedEntity &Entity, in CheckEmptyInitializable() argument
624 PerformEmptyInit(Loc, Entity); in CheckEmptyInitializable()
757 InitListChecker::FillInEmptyInitializations(const InitializedEntity &Entity, in FillInEmptyInitializations() argument
796 Entity, ILE, RequiresSecondPass, FillWithNoInit); in FillInEmptyInitializations()
801 FillInEmptyInitForField(0, Field, Entity, ILE, RequiresSecondPass, in FillInEmptyInitializations()
823 FillInEmptyInitForBase(Init, Base, Entity, ILE, RequiresSecondPass, in FillInEmptyInitializations()
836 FillInEmptyInitForField(Init, Field, Entity, ILE, RequiresSecondPass, in FillInEmptyInitializations()
854 InitializedEntity ElementEntity = Entity; in FillInEmptyInitializations()
863 if (Entity.isVariableLengthArrayNew()) in FillInEmptyInitializations()
866 0, Entity); in FillInEmptyInitializations()
871 0, Entity); in FillInEmptyInitializations()
960 Sema &S, const InitializedEntity &Entity, InitListExpr *IL, QualType &T, in InitListChecker() argument
977 CheckExplicitInitList(Entity, IL, T, FullyStructuredList, in InitListChecker()
982 FillInEmptyInitializations(Entity, FullyStructuredList, RequiresSecondPass, in InitListChecker()
985 FillInEmptyInitializations(Entity, FullyStructuredList, in InitListChecker()
1026 static bool isIdiomaticBraceElisionEntity(const InitializedEntity &Entity) { in isIdiomaticBraceElisionEntity() argument
1035 if (!Entity.getParent()) in isIdiomaticBraceElisionEntity()
1039 if (Entity.getKind() == InitializedEntity::EK_Base) { in isIdiomaticBraceElisionEntity()
1041 Entity.getParent()->getType()->castAs<RecordType>()->getDecl(); in isIdiomaticBraceElisionEntity()
1047 if (Entity.getKind() == InitializedEntity::EK_Member) { in isIdiomaticBraceElisionEntity()
1049 Entity.getParent()->getType()->castAs<RecordType>()->getDecl(); in isIdiomaticBraceElisionEntity()
1070 void InitListChecker::CheckImplicitInitList(const InitializedEntity &Entity, in CheckImplicitInitList() argument
1104 CheckListElementTypes(Entity, ParentIList, T, in CheckImplicitInitList()
1125 !isIdiomaticBraceElisionEntity(Entity)) { in CheckImplicitInitList()
1149 static void warnBracedScalarInit(Sema &S, const InitializedEntity &Entity, in warnBracedScalarInit() argument
1159 switch (Entity.getKind()) { in warnBracedScalarInit()
1175 if (Entity.getParent()) in warnBracedScalarInit()
1207 << Entity.getType()->isSizelessBuiltinType() << Braces in warnBracedScalarInit()
1218 void InitListChecker::CheckExplicitInitList(const InitializedEntity &Entity, in CheckExplicitInitList() argument
1223 CheckListElementTypes(Entity, IList, T, /*SubobjectIsDesignatorContext=*/true, in CheckExplicitInitList()
1276 warnBracedScalarInit(SemaRef, Entity, IList->getSourceRange()); in CheckExplicitInitList()
1299 void InitListChecker::CheckListElementTypes(const InitializedEntity &Entity, in CheckListElementTypes() argument
1310 CheckComplexType(Entity, IList, DeclType, Index, in CheckListElementTypes()
1313 CheckScalarType(Entity, IList, DeclType, Index, in CheckListElementTypes()
1316 CheckVectorType(Entity, IList, DeclType, Index, in CheckListElementTypes()
1330 CheckStructUnionTypes(Entity, IList, DeclType, Bases, RD->field_begin(), in CheckListElementTypes()
1337 CheckArrayType(Entity, IList, DeclType, Zero, in CheckListElementTypes()
1348 CheckReferenceType(Entity, IList, DeclType, Index, in CheckListElementTypes()
1357 CheckScalarType(Entity, IList, DeclType, Index, StructuredList, in CheckListElementTypes()
1374 void InitListChecker::CheckSubElementType(const InitializedEntity &Entity, in CheckSubElementType() argument
1384 return CheckReferenceType(Entity, IList, ElemType, Index, in CheckSubElementType()
1419 (ElemType->isExtVectorType() && !Entity.getType()->isExtVectorType()) in CheckSubElementType()
1421 : Entity; in CheckSubElementType()
1468 return CheckScalarType(Entity, IList, ElemType, Index, in CheckSubElementType()
1528 CheckImplicitInitList(Entity, IList, ElemType, Index, StructuredList, in CheckSubElementType()
1551 SemaRef.PerformCopyInitialization(Entity, SourceLocation(), expr, in CheckSubElementType()
1563 void InitListChecker::CheckComplexType(const InitializedEntity &Entity, in CheckComplexType() argument
1578 return CheckScalarType(Entity, IList, DeclType, Index, StructuredList, in CheckComplexType()
1590 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity); in CheckComplexType()
1599 void InitListChecker::CheckScalarType(const InitializedEntity &Entity, in CheckScalarType() argument
1636 CheckScalarType(Entity, SubIList, DeclType, Index, StructuredList, in CheckScalarType()
1653 if (SemaRef.CanPerformCopyInitialization(Entity, expr)) in CheckScalarType()
1659 SemaRef.PerformCopyInitialization(Entity, expr->getBeginLoc(), expr, in CheckScalarType()
1682 void InitListChecker::CheckReferenceType(const InitializedEntity &Entity, in CheckReferenceType() argument
1715 if (SemaRef.CanPerformCopyInitialization(Entity,expr)) in CheckReferenceType()
1721 SemaRef.PerformCopyInitialization(Entity, expr->getBeginLoc(), expr, in CheckReferenceType()
1739 void InitListChecker::CheckVectorType(const InitializedEntity &Entity, in CheckVectorType() argument
1752 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity), in CheckVectorType()
1764 if (SemaRef.CanPerformCopyInitialization(Entity, Init)) in CheckVectorType()
1770 SemaRef.PerformCopyInitialization(Entity, Init->getBeginLoc(), Init, in CheckVectorType()
1794 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity); in CheckVectorType()
1812 const VectorType *T = Entity.getType()->castAs<VectorType>(); in CheckVectorType()
1851 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity); in CheckVectorType()
1916 void InitListChecker::CheckArrayType(const InitializedEntity &Entity, in CheckArrayType() argument
2006 if (CheckDesignatedInitializer(Entity, IList, DIE, 0, in CheckArrayType()
2035 Entity); in CheckArrayType()
2050 if (maxElements == Zero && !Entity.isVariableLengthArrayNew()) { in CheckArrayType()
2065 Entity.isVariableLengthArrayNew()) in CheckArrayType()
2067 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity), in CheckArrayType()
2072 bool InitListChecker::CheckFlexibleArrayInit(const InitializedEntity &Entity, in CheckFlexibleArrayInit() argument
2085 } else if (Entity.getKind() != InitializedEntity::EK_Variable) { in CheckFlexibleArrayInit()
2088 } else if (cast<VarDecl>(Entity.getDecl())->hasLocalStorage()) { in CheckFlexibleArrayInit()
2107 const InitializedEntity &Entity, InitListExpr *IList, QualType DeclType, in CheckStructUnionTypes() argument
2154 InitializedEntity::InitializeMember(*Field, &Entity), in CheckStructUnionTypes()
2206 SemaRef.Context, &Base, false, &Entity); in CheckStructUnionTypes()
2252 Entity, IList, DIE, 0, DeclType, &Field, nullptr, Index, in CheckStructUnionTypes()
2351 InitializedEntity::InitializeMember(*Field, &Entity); in CheckStructUnionTypes()
2394 InitializedEntity::InitializeMember(*Field, &Entity), in CheckStructUnionTypes()
2418 if (CheckFlexibleArrayInit(Entity, IList->getInit(Index), *Field, in CheckStructUnionTypes()
2426 InitializedEntity::InitializeMember(*Field, &Entity); in CheckStructUnionTypes()
2543 InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, in CheckDesignatedInitializer() argument
2566 InitializationSequence Seq(SemaRef, Entity, Kind, Init, in CheckDesignatedInitializer()
2571 : Seq.Perform(SemaRef, Entity, Kind, Init); in CheckDesignatedInitializer()
2590 CheckSubElementType(Entity, IList, CurrentObjectType, Index, StructuredList, in CheckDesignatedInitializer()
2898 if (!Invalid && CheckFlexibleArrayInit(Entity, DIE->getInit(), *Field, in CheckDesignatedInitializer()
2914 InitializedEntity::InitializeMember(*Field, &Entity); in CheckDesignatedInitializer()
2933 InitializedEntity::InitializeMember(*Field, &Entity); in CheckDesignatedInitializer()
2972 CheckStructUnionTypes(Entity, IList, CurrentObjectType, NoBases, Field, in CheckDesignatedInitializer()
3135 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity); in CheckDesignatedInitializer()
3169 CheckArrayType(Entity, IList, CurrentObjectType, DesignatedStartIndex, in CheckDesignatedInitializer()
3305 const InitializedEntity &Entity, InitListExpr *From) { in CanPerformAggregateInitializationForOverloadResolution() argument
3306 QualType Type = Entity.getType(); in CanPerformAggregateInitializationForOverloadResolution()
3307 InitListChecker Check(*this, Entity, From, Type, /*VerifyOnly=*/true, in CanPerformAggregateInitializationForOverloadResolution()
3983 const InitializedEntity &Entity) { in maybeRecoverWithZeroInitialization() argument
3984 if (Entity.getKind() != InitializedEntity::EK_Variable) in maybeRecoverWithZeroInitialization()
3987 VarDecl *VD = cast<VarDecl>(Entity.getDecl()); in maybeRecoverWithZeroInitialization()
3995 Sequence.AddZeroInitializationStep(Entity.getType()); in maybeRecoverWithZeroInitialization()
4004 const InitializedEntity &Entity) { in MaybeProduceObjCObject() argument
4009 if (Entity.isParameterKind()) { in MaybeProduceObjCObject()
4010 if (!Entity.isParameterConsumed()) in MaybeProduceObjCObject()
4013 assert(Entity.getType()->isObjCRetainableType() && in MaybeProduceObjCObject()
4015 Sequence.AddProduceObjCObjectStep(Entity.getType()); in MaybeProduceObjCObject()
4021 } else if (Entity.getKind() == InitializedEntity::EK_Result || in MaybeProduceObjCObject()
4022 Entity.getKind() == InitializedEntity::EK_StmtExprResult) { in MaybeProduceObjCObject()
4023 if (!Entity.getType()->isObjCRetainableType()) in MaybeProduceObjCObject()
4026 Sequence.AddProduceObjCObjectStep(Entity.getType()); in MaybeProduceObjCObject()
4031 const InitializedEntity &Entity,
4205 const InitializedEntity &Entity, in TryConstructorInitialization() argument
4228 !(Entity.getKind() != InitializedEntity::EK_Base && in TryConstructorInitialization()
4229 Entity.getKind() != InitializedEntity::EK_Delegating && in TryConstructorInitialization()
4230 Entity.getKind() != in TryConstructorInitialization()
4332 Sequence.RewrapReferenceInitList(Entity.getType(), ILE); in TryConstructorInitialization()
4348 Entity.getType().isConstQualified()) { in TryConstructorInitialization()
4350 if (!maybeRecoverWithZeroInitialization(S, Sequence, Entity)) in TryConstructorInitialization()
4412 const InitializedEntity &Entity,
4423 const InitializedEntity &Entity,
4430 const InitializedEntity &Entity, in TryReferenceListInitialization() argument
4441 if (Entity.getKind() == InitializedEntity::EK_CompoundLiteralInit) { in TryReferenceListInitialization()
4446 QualType DestType = Entity.getType(); in TryReferenceListInitialization()
4473 TryReferenceInitializationCore(S, Entity, Kind, Initializer, cv1T1, T1, in TryReferenceListInitialization()
4533 const InitializedEntity &Entity, in TryListInitialization() argument
4538 QualType DestType = Entity.getType(); in TryListInitialization()
4548 TryReferenceListInitialization(S, Entity, Kind, InitList, Sequence, in TryListInitialization()
4593 TryConstructorInitialization(S, Entity, Kind, InitListAsExpr, DestType, in TryListInitialization()
4610 Sequence.InitializeFrom(S, Entity, SubKind, SubInit, in TryListInitialization()
4618 Sequence.RewrapReferenceInitList(Entity.getType(), InitList); in TryListInitialization()
4637 TryValueInitialization(S, Entity, Kind, Sequence, InitList); in TryListInitialization()
4650 TryConstructorInitialization(S, Entity, Kind, InitListAsExpr, DestType, in TryListInitialization()
4698 Sequence.RewrapReferenceInitList(Entity.getType(), InitList); in TryListInitialization()
4727 Sequence.InitializeFrom(S, Entity, SubKind, SubInit, in TryListInitialization()
4731 Sequence.RewrapReferenceInitList(Entity.getType(), InitList); in TryListInitialization()
4736 InitListChecker CheckInitList(S, Entity, InitList, in TryListInitialization()
4750 Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, in TryRefInitWithConversionFunction() argument
4753 QualType DestType = Entity.getType(); in TryRefInitWithConversionFunction()
4930 const InitializedEntity &Entity,
4934 static void TryReferenceInitialization(Sema &S, const InitializedEntity &Entity, in TryReferenceInitialization() argument
4939 QualType DestType = Entity.getType(); in TryReferenceInitialization()
4955 TryReferenceInitializationCore(S, Entity, Kind, Initializer, cv1T1, T1, in TryReferenceInitialization()
4973 const InitializedEntity &Entity, in TryReferenceInitializationCore() argument
4982 QualType DestType = Entity.getType(); in TryReferenceInitializationCore()
5052 S, Entity, Kind, Initializer, /*AllowRValues*/ isRValueRef, in TryReferenceInitializationCore()
5143 CheckCXX98CompatAccessibleCopy(S, Entity, Initializer); in TryReferenceInitializationCore()
5194 S, Entity, Kind, Initializer, /*AllowRValues*/ true, in TryReferenceInitializationCore()
5297 const InitializedEntity &Entity, in TryStringLiteralInitialization() argument
5301 Sequence.AddStringInitStep(Entity.getType()); in TryStringLiteralInitialization()
5306 const InitializedEntity &Entity, in TryValueInitialization() argument
5316 QualType T = Entity.getType(); in TryValueInitialization()
5347 Sequence.AddZeroInitializationStep(Entity.getType()); in TryValueInitialization()
5375 S, Entity, Kind, Args, T, Entity.getType(), Sequence, InitListSyntax); in TryValueInitialization()
5379 Sequence.AddZeroInitializationStep(Entity.getType()); in TryValueInitialization()
5384 const InitializedEntity &Entity, in TryDefaultInitialization() argument
5392 QualType DestType = S.Context.getBaseElementType(Entity.getType()); in TryDefaultInitialization()
5398 TryConstructorInitialization(S, Entity, Kind, std::nullopt, DestType, in TryDefaultInitialization()
5399 Entity.getType(), Sequence); in TryDefaultInitialization()
5409 if (!maybeRecoverWithZeroInitialization(S, Sequence, Entity)) in TryDefaultInitialization()
5416 Sequence.AddZeroInitializationStep(Entity.getType()); in TryDefaultInitialization()
5422 Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, in TryOrBuildParenListInitialization() argument
5460 S.getASTContext().getAsArrayType(Entity.getType())) { in TryOrBuildParenListInitialization()
5469 S.getASTContext().getAsConstantArrayType(Entity.getType())) { in TryOrBuildParenListInitialization()
5471 ResultType = Entity.getType(); in TryOrBuildParenListInitialization()
5473 S.getASTContext().getAsVariableArrayType(Entity.getType())) { in TryOrBuildParenListInitialization()
5483 assert(isa<IncompleteArrayType>(Entity.getType())); in TryOrBuildParenListInitialization()
5492 S.getASTContext(), EntityIndexToProcess, Entity); in TryOrBuildParenListInitialization()
5499 if (ArrayLength > Args.size() || Entity.isVariableLengthArrayNew()) { in TryOrBuildParenListInitialization()
5501 S.getASTContext(), Args.size(), Entity); in TryOrBuildParenListInitialization()
5513 } else if (auto *RT = Entity.getType()->getAs<RecordType>()) { in TryOrBuildParenListInitialization()
5528 S.getASTContext(), &Base, false, &Entity); in TryOrBuildParenListInitialization()
5633 ResultType = Entity.getType(); in TryOrBuildParenListInitialization()
5641 QualType T = Entity.getType(); in TryOrBuildParenListInitialization()
5653 Sequence.AddParenthesizedListInitStep(Entity.getType()); in TryOrBuildParenListInitialization()
5861 const InitializedEntity &Entity, in isLibstdcxxPointerReturnFalseHack() argument
5864 Entity.getKind() == InitializedEntity::EK_Result && in isLibstdcxxPointerReturnFalseHack()
5865 Entity.getType()->isPointerType() && in isLibstdcxxPointerReturnFalseHack()
5978 const InitializedEntity &Entity, in tryObjCWritebackConversion() argument
5991 if (!S.isObjCWritebackConversion(ArgType, Entity.getType(), in tryObjCWritebackConversion()
5998 if (ParmVarDecl *param = cast_or_null<ParmVarDecl>(Entity.getDecl())) in tryObjCWritebackConversion()
6019 Sequence.AddPassByIndirectCopyRestoreStep(Entity.getType(), ShouldCopy); in tryObjCWritebackConversion()
6084 Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, in InitializationSequence() argument
6088 InitializeFrom(S, Entity, Kind, Args, TopLevelOfInitList, in InitializationSequence()
6105 static bool canPerformArrayCopy(const InitializedEntity &Entity) { in canPerformArrayCopy() argument
6106 switch (Entity.getKind()) { in canPerformArrayCopy()
6117 return isa<DecompositionDecl>(Entity.getDecl()); in canPerformArrayCopy()
6123 return Entity.isImplicitMemberInitializer(); in canPerformArrayCopy()
6128 if (auto *E = Entity.getParent()) in canPerformArrayCopy()
6140 const InitializedEntity &Entity, in InitializeFrom() argument
6168 QualType DestType = Entity.getType(); in InitializeFrom()
6198 TryListInitialization(S, Entity, Kind, InitList, *this, in InitializeFrom()
6220 TryReferenceInitialization(S, Entity, Kind, Args[0], *this, in InitializeFrom()
6228 TryValueInitialization(S, Entity, Kind, *this); in InitializeFrom()
6234 TryDefaultInitialization(S, Entity, Kind, *this); in InitializeFrom()
6252 TryStringLiteralInitialization(S, Entity, Kind, Initializer, *this); in InitializeFrom()
6278 Entity.getType()) && in InitializeFrom()
6279 canPerformArrayCopy(Entity)) { in InitializeFrom()
6288 InitializedEntity::InitializeElement(S.Context, 0, Entity); in InitializeFrom()
6298 AddArrayInitLoopStep(Entity.getType(), InitEltT); in InitializeFrom()
6321 Entity.getKind() == InitializedEntity::EK_Member && in InitializeFrom()
6323 TryListInitialization(S, Entity, Kind, cast<InitListExpr>(Initializer), in InitializeFrom()
6328 TryOrBuildParenListInitialization(S, Entity, Kind, Args, *this, in InitializeFrom()
6343 Entity.isParameterKind(); in InitializeFrom()
6354 tryObjCWritebackConversion(S, *this, Entity, Initializer)) { in InitializeFrom()
6363 MaybeProduceObjCObject(S, *this, Entity); in InitializeFrom()
6380 TryConstructorInitialization(S, Entity, Kind, Args, DestType, DestType, in InitializeFrom()
6412 TryOrBuildParenListInitialization(S, Entity, Kind, Args, *this, in InitializeFrom()
6490 MaybeProduceObjCObject(S, *this, Entity); in InitializeFrom()
6492 AddAtomicConversionStep(Entity.getType()); in InitializeFrom()
6530 if (ParmVarDecl *Param = cast_or_null<ParmVarDecl>(Entity.getDecl())) in InitializeFrom()
6547 if (isLibstdcxxPointerReturnFalseHack(S, Entity, Initializer)) { in InitializeFrom()
6548 AddZeroInitializationStep(Entity.getType()); in InitializeFrom()
6561 MaybeProduceObjCObject(S, *this, Entity); in InitializeFrom()
6574 getAssignmentAction(const InitializedEntity &Entity, bool Diagnose = false) { in getAssignmentAction() argument
6575 switch(Entity.getKind()) { in getAssignmentAction()
6584 if (Entity.getDecl() && in getAssignmentAction()
6585 isa<ObjCMethodDecl>(Entity.getDecl()->getDeclContext())) in getAssignmentAction()
6591 if (Entity.getDecl() && in getAssignmentAction()
6592 isa<ObjCMethodDecl>(Entity.getDecl()->getDeclContext())) in getAssignmentAction()
6629 static bool shouldBindAsTemporary(const InitializedEntity &Entity) { in shouldBindAsTemporary() argument
6630 switch (Entity.getKind()) { in shouldBindAsTemporary()
6663 static bool shouldDestroyEntity(const InitializedEntity &Entity) { in shouldDestroyEntity() argument
6664 switch (Entity.getKind()) { in shouldDestroyEntity()
6696 static SourceLocation getInitializationLoc(const InitializedEntity &Entity, in getInitializationLoc() argument
6698 switch (Entity.getKind()) { in getInitializationLoc()
6701 return Entity.getReturnLoc(); in getInitializationLoc()
6704 return Entity.getThrowLoc(); in getInitializationLoc()
6708 return Entity.getDecl()->getLocation(); in getInitializationLoc()
6711 return Entity.getCaptureLoc(); in getInitializationLoc()
6756 const InitializedEntity &Entity, in CopyObject() argument
6769 SourceLocation Loc = getInitializationLoc(Entity, CurInit.get()); in CopyObject()
6797 << (int)Entity.getKind() << CurInitExpr->getType() in CopyObject()
6807 << (int)Entity.getKind() in CopyObject()
6815 << (int)Entity.getKind() << CurInitExpr->getType() in CopyObject()
6827 S.CheckConstructorAccess(Loc, Constructor, Best->FoundDecl, Entity, in CopyObject()
6897 if (!CurInit.isInvalid() && shouldBindAsTemporary(Entity)) in CopyObject()
6906 const InitializedEntity &Entity, in CheckCXX98CompatAccessibleCopy() argument
6914 SourceLocation Loc = getInitializationLoc(Entity, CurInitExpr); in CheckCXX98CompatAccessibleCopy()
6933 << OR << (int)Entity.getKind() << CurInitExpr->getType() in CheckCXX98CompatAccessibleCopy()
6939 Best->FoundDecl, Entity, Diag); in CheckCXX98CompatAccessibleCopy()
6961 const InitializedEntity &Entity) { in PrintInitLocationNote() argument
6962 if (Entity.isParamOrTemplateParamKind() && Entity.getDecl()) { in PrintInitLocationNote()
6963 if (Entity.getDecl()->getLocation().isInvalid()) in PrintInitLocationNote()
6966 if (Entity.getDecl()->getDeclName()) in PrintInitLocationNote()
6967 S.Diag(Entity.getDecl()->getLocation(), diag::note_parameter_named_here) in PrintInitLocationNote()
6968 << Entity.getDecl()->getDeclName(); in PrintInitLocationNote()
6970 S.Diag(Entity.getDecl()->getLocation(), diag::note_parameter_here); in PrintInitLocationNote()
6972 else if (Entity.getKind() == InitializedEntity::EK_RelatedResult && in PrintInitLocationNote()
6973 Entity.getMethodDecl()) in PrintInitLocationNote()
6974 S.Diag(Entity.getMethodDecl()->getLocation(), in PrintInitLocationNote()
6976 << Entity.getMethodDecl()->getDeclName(); in PrintInitLocationNote()
6981 static bool isExplicitTemporary(const InitializedEntity &Entity, in isExplicitTemporary() argument
6984 switch (Entity.getKind()) { in isExplicitTemporary()
7007 const InitializedEntity &Entity, in PerformConstructorInitialization() argument
7060 if (isExplicitTemporary(Entity, Kind, NumArgs)) { in PerformConstructorInitialization()
7065 TypeSourceInfo *TSInfo = Entity.getTypeSourceInfo(); in PerformConstructorInitialization()
7067 TSInfo = S.Context.getTrivialTypeSourceInfo(Entity.getType(), Loc); in PerformConstructorInitialization()
7083 Entity.getType().getNonLValueExprType(S.Context), TSInfo, in PerformConstructorInitialization()
7091 if (Entity.getKind() == InitializedEntity::EK_Base) { in PerformConstructorInitialization()
7092 ConstructKind = Entity.getBaseSpecifier()->isVirtual() in PerformConstructorInitialization()
7095 } else if (Entity.getKind() == InitializedEntity::EK_Delegating) { in PerformConstructorInitialization()
7109 if (Entity.allowsNRVO()) in PerformConstructorInitialization()
7136 S.CheckConstructorAccess(Loc, Constructor, Step.Function.FoundDecl, Entity); in PerformConstructorInitialization()
7140 if (const ArrayType *AT = S.Context.getAsArrayType(Entity.getType())) in PerformConstructorInitialization()
7144 if (shouldBindAsTemporary(Entity)) in PerformConstructorInitialization()
7184 const InitializedEntity *Entity, in getEntityLifetime() argument
7187 switch (Entity->getKind()) { in getEntityLifetime()
7190 return {Entity, LK_Extended}; in getEntityLifetime()
7194 if (Entity->getParent()) in getEntityLifetime()
7195 return getEntityLifetime(Entity->getParent(), Entity); in getEntityLifetime()
7209 return {Entity, Entity->isDefaultMemberInitializer() ? LK_Extended in getEntityLifetime()
7215 return {Entity, LK_Extended}; in getEntityLifetime()
7255 return getEntityLifetime(Entity->getParent(), InitField); in getEntityLifetime()
7259 if (Entity->getParent()) in getEntityLifetime()
7260 return getEntityLifetime(Entity->getParent(), InitField); in getEntityLifetime()
8090 void Sema::checkInitializerLifetime(const InitializedEntity &Entity, in checkInitializerLifetime() argument
8092 LifetimeResult LR = getEntityLifetime(&Entity); in checkInitializerLifetime()
8178 << RK << !Entity.getParent() in checkInitializerLifetime()
8201 bool IsSubobjectMember = ExtendingEntity != &Entity; in checkInitializerLifetime()
8267 << !Entity.getParent() << DiagRange; in checkInitializerLifetime()
8282 << Entity.getType()->isReferenceType() << DRE->getDecl() in checkInitializerLifetime()
8294 << Entity.getType()->isReferenceType() << DiagRange; in checkInitializerLifetime()
8535 const InitializedEntity &Entity, in Perform() argument
8540 Diagnose(S, Entity, Kind, Args); in Perform()
8544 const Decl *D = Entity.getDecl(); in Perform()
8546 QualType DestType = Entity.getType(); in Perform()
8573 if (ResultType && !Entity.getType()->isDependentType() && in Perform()
8575 QualType DeclType = Entity.getType(); in Perform()
8589 if (auto *DD = dyn_cast_or_null<DeclaratorDecl>(Entity.getDecl())) { in Perform()
8625 if (S.getLangOpts().CPlusPlus11 && Entity.getType()->isReferenceType() && in Perform()
8627 !Entity.isParamOrTemplateParamKind()) { in Perform()
8637 isa<PredefinedExpr>(Args[0]) && Entity.getType()->isArrayType()) { in Perform()
8646 QualType ETy = Entity.getType(); in Perform()
8652 Entity.getKind() == InitializedEntity::EK_Variable && Args.size() > 0) { in Perform()
8655 << SourceRange(Entity.getDecl()->getBeginLoc(), Args[0]->getEndLoc()); in Perform()
8659 QualType DestType = Entity.getType().getNonReferenceType(); in Perform()
8664 *ResultType = Entity.getDecl() ? Entity.getDecl()->getType() : in Perform()
8665 Entity.getType(); in Perform()
8738 if (Entity.getKind() == InitializedEntity::EK_Base || in Perform()
8739 Entity.getKind() == InitializedEntity::EK_Delegating) in Perform()
8842 MTETy, CurInit.get(), Entity.getType()->isLValueReferenceType()); in Perform()
8862 if (!shouldBindAsTemporary(Entity)) in Perform()
8864 CurInit = CopyObject(S, Step->Type, Entity, CurInit, in Perform()
8869 CurInit = CopyObject(S, Step->Type, Entity, CurInit, in Perform()
8905 Entity); in Perform()
8935 if (shouldBindAsTemporary(Entity)) in Perform()
8939 else if (CreatedObject && shouldDestroyEntity(Entity)) { in Perform()
9010 getAssignmentAction(Entity), CCK); in Perform()
9020 DiagnoseNarrowingInInitList(S, *Step->ICS, SourceType, Entity.getType(), in Perform()
9034 bool IsTemporary = !S.Context.hasSameType(Entity.getType(), Ty); in Perform()
9036 InitializedEntity InitEntity = IsTemporary ? TempEntity : Entity; in Perform()
9076 Entity.getType().getNonReferenceType()); in Perform()
9077 bool UseTemporary = Entity.getType()->isReferenceType(); in Perform()
9084 Entity, in Perform()
9122 Entity.getType().getNonReferenceType()); in Perform()
9123 bool UseTemporary = Entity.getType()->isReferenceType(); in Perform()
9131 S, UseTemporary ? TempEntity : Entity, Kind, in Perform()
9153 TypeSourceInfo *TSInfo = Entity.getTypeSourceInfo(); in Perform()
9159 Entity.getType().getNonLValueExprType(S.Context), TSInfo, in Perform()
9175 Entity.getKind() == InitializedEntity::EK_Parameter_CF_Audited); in Perform()
9183 Entity.isParameterKind() && in Perform()
9195 getAssignmentAction(Entity, true), in Perform()
9197 PrintInitLocationNote(S, Entity); in Perform()
9200 PrintInitLocationNote(S, Entity); in Perform()
9206 bool UpdateType = ResultType && Entity.getType()->isIncompleteArrayType(); in Perform()
9300 if (shouldBindAsTemporary(Entity)) in Perform()
9326 if (Entity.isParameterKind()) { in Perform()
9410 TryOrBuildParenListInitialization(S, Entity, Kind, Args, *this, in Perform()
9414 if (shouldBindAsTemporary(Entity)) in Perform()
9427 S.checkInitializerLifetime(Entity, Init); in Perform()
9430 if (InitializedEntity::EntityKind EK = Entity.getKind(); in Perform()
9433 cast<FieldDecl>(Entity.getDecl())->isBitField()) in Perform()
9435 cast<FieldDecl>(Entity.getDecl()), Init); in Perform()
9439 Entity.getKind() == InitializedEntity::EK_Result); in Perform()
9516 static void diagnoseListInit(Sema &S, const InitializedEntity &Entity, in diagnoseListInit() argument
9518 QualType DestType = Entity.getType(); in diagnoseListInit()
9539 if (auto *D = Entity.getDecl()) in diagnoseListInit()
9545 InitListChecker DiagnoseInitList(S, Entity, InitList, DestType, in diagnoseListInit()
9553 const InitializedEntity &Entity, in Diagnose() argument
9572 QualType DestType = Entity.getType(); in Diagnose()
9592 << 1 << Entity.getType() << Args[0]->getSourceRange(); in Diagnose()
9682 << (Entity.getKind() == InitializedEntity::EK_Result) in Diagnose()
9798 emitBadConversionNotes(S, Entity, Args[0]); in Diagnose()
9804 << (int)Entity.getKind() in Diagnose()
9811 emitBadConversionNotes(S, Entity, Args[0]); in Diagnose()
9842 << 0 << Entity.getType() << Args[0]->getSourceRange(); in Diagnose()
9882 (Entity.getKind() == InitializedEntity::EK_Base || in Diagnose()
9883 Entity.getKind() == InitializedEntity::EK_Member || in Diagnose()
9884 Entity.getKind() == InitializedEntity::EK_ParenAggInitMember) && in Diagnose()
9895 if (Entity.getKind() == InitializedEntity::EK_Base) { in Diagnose()
9900 << Entity.getType() in Diagnose()
9904 = Entity.getBaseSpecifier()->getType()->castAs<RecordType>() in Diagnose()
9913 << Entity.getName() in Diagnose()
9915 S.Diag(Entity.getDecl()->getLocation(), in Diagnose()
9919 = Entity.getType()->getAs<RecordType>()) in Diagnose()
9968 if (Entity.getKind() == InitializedEntity::EK_Member && in Diagnose()
9979 << Entity.getName(); in Diagnose()
9980 S.Diag(Entity.getDecl()->getLocation(), diag::note_previous_decl) in Diagnose()
9981 << Entity.getName(); in Diagnose()
9982 } else if (const auto *VD = dyn_cast_if_present<VarDecl>(Entity.getDecl()); in Diagnose()
10000 diagnoseListInit(S, Entity, InitList); in Diagnose()
10024 TryOrBuildParenListInitialization(S, Entity, Kind, Args, *this, in Diagnose()
10031 << Entity.getType() << InitList->getSourceRange(); in Diagnose()
10035 PrintInitLocationNote(S, Entity); in Diagnose()
10501 Sema::CanPerformCopyInitialization(const InitializedEntity &Entity, in CanPerformCopyInitialization() argument
10511 InitializationSequence Seq(*this, Entity, Kind, InitE); in CanPerformCopyInitialization()
10516 Sema::PerformCopyInitialization(const InitializedEntity &Entity, in PerformCopyInitialization() argument
10532 InitializationSequence Seq(*this, Entity, Kind, InitE, TopLevelOfInitList); in PerformCopyInitialization()
10536 Entity.isParameterKind() && Seq.isConstructorInitialization(); in PerformCopyInitialization()
10538 if (llvm::is_contained(CurrentParameterCopyTypes, Entity.getType())) { in PerformCopyInitialization()
10565 CurrentParameterCopyTypes.push_back(Entity.getType()); in PerformCopyInitialization()
10568 ExprResult Result = Seq.Perform(*this, Entity, Kind, InitE); in PerformCopyInitialization()
10587 TypeSourceInfo *TSInfo, const InitializedEntity &Entity, in DeduceTemplateSpecializationFromInitializer() argument
10747 InitListChecker CheckInitList(*this, Entity, ListInit, Ty, ElementTypes); in DeduceTemplateSpecializationFromInitializer()