Lines Matching refs:SemaRef

249   Sema &SemaRef;  member in __anon3a2dc5580111::InitListChecker
332 static ExprResult PerformEmptyInit(Sema &SemaRef,
388 ExprResult InitListChecker::PerformEmptyInit(Sema &SemaRef, in PerformEmptyInit() argument
397 InitListExpr DummyInitList(SemaRef.Context, Loc, None, Loc); in PerformEmptyInit()
403 bool EmptyInitList = SemaRef.getLangOpts().CPlusPlus11 && in PerformEmptyInit()
416 InitExpr = VerifyOnly ? &DummyInitList : new (SemaRef.Context) in PerformEmptyInit()
417 InitListExpr(SemaRef.Context, Loc, None, Loc); in PerformEmptyInit()
418 InitExpr->setType(SemaRef.Context.VoidTy); in PerformEmptyInit()
426 InitializationSequence InitSeq(SemaRef, Entity, Kind, SubInit); in PerformEmptyInit()
437 .BestViableFunction(SemaRef, Kind.getLocation(), Best); in PerformEmptyInit()
445 SemaRef.SourceMgr.isInSystemHeader(CtorDecl->getLocation())) { in PerformEmptyInit()
449 if (SemaRef.getStdNamespace()->InEnclosingNamespaceSetOf(ND)) in PerformEmptyInit()
460 SemaRef, Entity, in PerformEmptyInit()
467 SemaRef.Diag(CtorDecl->getLocation(), in PerformEmptyInit()
470 SemaRef.Diag(Entity.getDecl()->getLocation(), in PerformEmptyInit()
473 SemaRef.Diag(Loc, diag::note_used_in_initialization_here); in PerformEmptyInit()
480 InitSeq.Diagnose(SemaRef, Entity, Kind, SubInit); in PerformEmptyInit()
482 SemaRef.Diag(Entity.getDecl()->getLocation(), in PerformEmptyInit()
489 SemaRef.Diag(Loc, diag::note_in_omitted_aggregate_initializer) in PerformEmptyInit()
498 : InitSeq.Perform(SemaRef, Entity, Kind, SubInit); in PerformEmptyInit()
505 if (PerformEmptyInit(SemaRef, Loc, Entity, /*VerifyOnly*/true, in CheckEmptyInitializable()
517 SemaRef.Context, &Base, false, &ParentEntity); in FillInEmptyInitForBase()
522 ? new (SemaRef.Context) NoInitExpr(Base.getType()) in FillInEmptyInitForBase()
523 : PerformEmptyInit(SemaRef, ILE->getEndLoc(), BaseEntity, in FillInEmptyInitForBase()
559 Expr *Filler = new (SemaRef.Context) NoInitExpr(Field->getType()); in FillInEmptyInitForField()
563 ILE->updateInit(SemaRef.Context, Init, Filler); in FillInEmptyInitForField()
571 ExprResult DIE = SemaRef.BuildCXXDefaultInitExpr(Loc, Field); in FillInEmptyInitForField()
576 SemaRef.checkInitializerLifetime(MemberEntity, DIE.get()); in FillInEmptyInitForField()
580 ILE->updateInit(SemaRef.Context, Init, DIE.get()); in FillInEmptyInitForField()
591 SemaRef.Diag(Loc, diag::err_init_reference_member_uninitialized) in FillInEmptyInitForField()
594 SemaRef.Diag(Field->getLocation(), in FillInEmptyInitForField()
600 ExprResult MemberInit = PerformEmptyInit(SemaRef, Loc, MemberEntity, in FillInEmptyInitForField()
617 ILE->updateInit(SemaRef.Context, Init, MemberInit.getAs<Expr>()); in FillInEmptyInitForField()
641 assert((ILE->getType() != SemaRef.Context.VoidTy) && in FillInEmptyInitializations()
687 ILE->resizeInits(SemaRef.Context, NumElems); in FillInEmptyInitializations()
730 if (const ArrayType *AType = SemaRef.Context.getAsArrayType(ILE->getType())) { in FillInEmptyInitializations()
738 ElementEntity = InitializedEntity::InitializeElement(SemaRef.Context, in FillInEmptyInitializations()
743 ElementEntity = InitializedEntity::InitializeElement(SemaRef.Context, in FillInEmptyInitializations()
766 Filler = new (SemaRef.Context) NoInitExpr(ElementType); in FillInEmptyInitializations()
769 PerformEmptyInit(SemaRef, ILE->getEndLoc(), ElementEntity, in FillInEmptyInitializations()
801 ILE->updateInit(SemaRef.Context, Init, Filler); in FillInEmptyInitializations()
821 : SemaRef(S), VerifyOnly(VerifyOnly), in InitListChecker()
847 SemaRef.Context.getAsConstantArrayType(DeclType)) { in numArrayElements()
919 SemaRef.Diag(ParentIList->getInit(Index)->getBeginLoc(), in CheckImplicitInitList()
955 !ParentIList->isIdiomaticZeroInitializer(SemaRef.getLangOpts()) && in CheckImplicitInitList()
957 SemaRef.Diag(StructuredSubobjectInitList->getBeginLoc(), in CheckImplicitInitList()
963 SemaRef.getLocForEndOfToken( in CheckImplicitInitList()
971 SemaRef.Diag(StructuredSubobjectInitList->getBeginLoc(), in CheckImplicitInitList()
1062 ExprTy = ExprTy.getNonLValueExprType(SemaRef.Context); in CheckExplicitInitList()
1072 if (SemaRef.getLangOpts().CPlusPlus || in CheckExplicitInitList()
1073 (SemaRef.getLangOpts().OpenCL && in CheckExplicitInitList()
1081 IsStringInit(StructuredList->getInit(0), T, SemaRef.Context) == in CheckExplicitInitList()
1084 if (SemaRef.getLangOpts().CPlusPlus) { in CheckExplicitInitList()
1089 SemaRef.Diag(IList->getInit(Index)->getBeginLoc(), DK) in CheckExplicitInitList()
1103 if (SemaRef.getLangOpts().CPlusPlus) { in CheckExplicitInitList()
1107 if (SemaRef.getLangOpts().OpenCL && initKind == 1) { in CheckExplicitInitList()
1112 SemaRef.Diag(IList->getInit(Index)->getBeginLoc(), DK) in CheckExplicitInitList()
1120 warnBracedScalarInit(SemaRef, Entity, IList->getSourceRange()); in CheckExplicitInitList()
1130 auto *CD = SemaRef.LookupDefaultConstructor(CXXRD); in CheckExplicitInitList()
1135 SemaRef.Diag(IList->getBeginLoc(), in CheckExplicitInitList()
1176 SemaRef.Context.getTypeSize(SemaRef.Context.getSizeType()), in CheckListElementTypes()
1185 SemaRef.Diag(IList->getBeginLoc(), diag::err_illegal_initializer_type) in CheckListElementTypes()
1193 SemaRef.Diag(IList->getBeginLoc(), diag::err_init_objc_class) << DeclType; in CheckListElementTypes()
1201 SemaRef.Diag(IList->getBeginLoc(), diag::err_illegal_initializer_type) in CheckListElementTypes()
1221 IsStringInit(SubInitList->getInit(0), ElemType, SemaRef.Context) == in CheckSubElementType()
1224 } else if (!SemaRef.getLangOpts().CPlusPlus) { in CheckSubElementType()
1250 assert(SemaRef.Context.hasSameType(expr->getType(), ElemType) && in CheckSubElementType()
1258 if (SemaRef.getLangOpts().CPlusPlus) { in CheckSubElementType()
1266 InitializationSequence Seq(SemaRef, Entity, Kind, expr, in CheckSubElementType()
1278 Seq.Perform(SemaRef, Entity, Kind, expr); in CheckSubElementType()
1296 SemaRef.Context.getAsArrayType(ElemType)) { in CheckSubElementType()
1301 if (IsStringInit(expr, arrayType, SemaRef.Context) == SIF_None) { in CheckSubElementType()
1303 CheckStringInit(expr, ElemType, arrayType, SemaRef); in CheckSubElementType()
1325 if (SemaRef.CheckSingleAssignmentConstraints( in CheckSubElementType()
1330 ExprRes = SemaRef.DefaultFunctionArrayLvalueConversion(ExprRes.get()); in CheckSubElementType()
1350 if ((!SemaRef.getLangOpts().OpenCL && ElemType->isVectorType()) || in CheckSubElementType()
1359 SemaRef.PerformCopyInitialization(Entity, SourceLocation(), expr, in CheckSubElementType()
1388 if (!SemaRef.getLangOpts().CPlusPlus && !VerifyOnly) in CheckComplexType()
1389 SemaRef.Diag(IList->getBeginLoc(), diag::ext_complex_component_init) in CheckComplexType()
1395 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity); in CheckComplexType()
1411 SemaRef.Diag(IList->getBeginLoc(), in CheckScalarType()
1412 SemaRef.getLangOpts().CPlusPlus11 in CheckScalarType()
1416 hadError = !SemaRef.getLangOpts().CPlusPlus11; in CheckScalarType()
1427 SemaRef.Diag(SubIList->getBeginLoc(), in CheckScalarType()
1436 SemaRef.Diag(expr->getBeginLoc(), diag::err_designator_for_scalar_init) in CheckScalarType()
1445 if (!SemaRef.CanPerformCopyInitialization(Entity,expr)) in CheckScalarType()
1452 SemaRef.PerformCopyInitialization(Entity, expr->getBeginLoc(), expr, in CheckScalarType()
1485 SemaRef.Diag(IList->getBeginLoc(), in CheckReferenceType()
1495 if (isa<InitListExpr>(expr) && !SemaRef.getLangOpts().CPlusPlus11) { in CheckReferenceType()
1497 SemaRef.Diag(IList->getBeginLoc(), diag::err_init_non_aggr_init_list) in CheckReferenceType()
1506 if (!SemaRef.CanPerformCopyInitialization(Entity,expr)) in CheckReferenceType()
1513 SemaRef.PerformCopyInitialization(Entity, expr->getBeginLoc(), expr, in CheckReferenceType()
1543 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity), in CheckVectorType()
1548 if (!SemaRef.getLangOpts().OpenCL) { in CheckVectorType()
1554 if (!SemaRef.CanPerformCopyInitialization(Entity, Init)) in CheckVectorType()
1561 SemaRef.PerformCopyInitialization(Entity, Init->getBeginLoc(), Init, in CheckVectorType()
1585 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity); in CheckVectorType()
1603 bool isBigEndian = SemaRef.Context.getTargetInfo().isBigEndian(); in CheckVectorType()
1617 SemaRef.Diag(IList->getBeginLoc(), in CheckVectorType()
1621 unsigned typeSize = SemaRef.Context.getTypeSize(elementType); in CheckVectorType()
1632 SemaRef.Diag(IList->getBeginLoc(), in CheckVectorType()
1633 SemaRef.Context.getTypeSize(VT) > 64 in CheckVectorType()
1643 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity); in CheckVectorType()
1664 VecType = SemaRef.Context.getExtVectorType(elementType, numIElts); in CheckVectorType()
1666 VecType = SemaRef.Context.getVectorType(elementType, numIElts, in CheckVectorType()
1677 SemaRef.Diag(IList->getBeginLoc(), in CheckVectorType()
1691 const ArrayType *arrayType = SemaRef.Context.getAsArrayType(DeclType); in CheckArrayType()
1695 if (IsStringInit(IList->getInit(Index), arrayType, SemaRef.Context) == in CheckArrayType()
1703 CheckStringInit(IList->getInit(Index), DeclType, arrayType, SemaRef); in CheckArrayType()
1706 StructuredList->resizeInits(SemaRef.Context, StructuredIndex); in CheckArrayType()
1717 SemaRef.Diag(VAT->getSizeExpr()->getBeginLoc(), in CheckArrayType()
1777 InitializedEntity::InitializeElement(SemaRef.Context, StructuredIndex, in CheckArrayType()
1796 SemaRef.Diag(IList->getBeginLoc(), diag::ext_typecheck_zero_array_size); in CheckArrayType()
1799 DeclType = SemaRef.Context.getConstantArrayType(elementType, maxElements, in CheckArrayType()
1811 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity), in CheckArrayType()
1826 } else if (SemaRef.getLangOpts().CPlusPlus) { in CheckFlexibleArrayInit()
1845 SemaRef.Diag(InitExpr->getBeginLoc(), FlexArrayDiag) in CheckFlexibleArrayInit()
1847 SemaRef.Diag(Field->getLocation(), diag::note_flexible_array_member) in CheckFlexibleArrayInit()
1863 Sema &SemaRef) { in hasAccessibleDestructor() argument
1868 CXXDestructorDecl *Destructor = SemaRef.LookupDestructor(CXXRD); in hasAccessibleDestructor()
1869 SemaRef.CheckDestructorAccess(Loc, Destructor, in hasAccessibleDestructor()
1870 SemaRef.PDiag(diag::err_access_dtor_temp) in hasAccessibleDestructor()
1872 SemaRef.MarkFunctionReferenced(Loc, Destructor); in hasAccessibleDestructor()
1873 if (SemaRef.DiagnoseUseOfDecl(Destructor, Loc)) in hasAccessibleDestructor()
1900 QualType ET = SemaRef.Context.getBaseElementType(FD->getType()); in CheckStructUnionTypes()
1901 if (hasAccessibleDestructor(ET, IList->getEndLoc(), SemaRef)) { in CheckStructUnionTypes()
1951 SemaRef.Context, &Base, false, &Entity); in CheckStructUnionTypes()
1961 if (hasAccessibleDestructor(Base.getType(), InitLoc, SemaRef)) { in CheckStructUnionTypes()
1974 !IList->isIdiomaticZeroInitializer(SemaRef.getLangOpts()); in CheckStructUnionTypes()
2002 QualType ET = SemaRef.Context.getBaseElementType(F->getType()); in CheckStructUnionTypes()
2003 if (hasAccessibleDestructor(ET, InitLoc, SemaRef)) { in CheckStructUnionTypes()
2039 InvalidUse = !SemaRef.CanUseDecl(*Field, TreatUnavailableAsInvalid); in CheckStructUnionTypes()
2041 InvalidUse = SemaRef.DiagnoseUseOfDecl( in CheckStructUnionTypes()
2051 QualType ET = SemaRef.Context.getBaseElementType(Field->getType()); in CheckStructUnionTypes()
2052 if (hasAccessibleDestructor(ET, InitLoc, SemaRef)) { in CheckStructUnionTypes()
2081 SemaRef.Diag(IList->getSourceRange().getEnd(), in CheckStructUnionTypes()
2107 QualType ET = SemaRef.Context.getBaseElementType(I->getType()); in CheckStructUnionTypes()
2108 if (hasAccessibleDestructor(ET, IList->getEndLoc(), SemaRef)) { in CheckStructUnionTypes()
2141 static void ExpandAnonymousFieldDesignator(Sema &SemaRef, in ExpandAnonymousFieldDesignator() argument
2165 DIE->ExpandDesignator(SemaRef.Context, DesigIdx, &Replacements[0], in ExpandAnonymousFieldDesignator()
2169 static DesignatedInitExpr *CloneDesignatedInitExpr(Sema &SemaRef, in CloneDesignatedInitExpr() argument
2175 return DesignatedInitExpr::Create(SemaRef.Context, DIE->designators(), in CloneDesignatedInitExpr()
2298 DesignatedInitUpdateExpr *DIUE = new (SemaRef.Context) in CheckDesignatedInitializer()
2299 DesignatedInitUpdateExpr(SemaRef.Context, D->getBeginLoc(), in CheckDesignatedInitializer()
2301 StructuredList->updateInit(SemaRef.Context, StructuredIndex, DIUE); in CheckDesignatedInitializer()
2325 SemaRef.Diag(D->getBeginLoc(), in CheckDesignatedInitializer()
2329 SemaRef.Diag(ExistingInit->getBeginLoc(), in CheckDesignatedInitializer()
2354 SemaRef.Diag(Loc, diag::err_field_designator_non_aggr) in CheckDesignatedInitializer()
2355 << SemaRef.getLangOpts().CPlusPlus << CurrentObjectType; in CheckDesignatedInitializer()
2372 DIE = CloneDesignatedInitExpr(SemaRef, DIE); in CheckDesignatedInitializer()
2373 ExpandAnonymousFieldDesignator(SemaRef, DIE, DesigIdx, IFD); in CheckDesignatedInitializer()
2387 SemaRef.Diag(D->getFieldLoc(), diag::err_field_designator_nonfield) in CheckDesignatedInitializer()
2389 SemaRef.Diag(Lookup.front()->getLocation(), in CheckDesignatedInitializer()
2397 if (TypoCorrection Corrected = SemaRef.CorrectTypo( in CheckDesignatedInitializer()
2402 SemaRef.diagnoseTypo( in CheckDesignatedInitializer()
2404 SemaRef.PDiag(diag::err_field_designator_unknown_suggest) in CheckDesignatedInitializer()
2410 SemaRef.Diag(D->getFieldLoc(), diag::err_field_designator_unknown) in CheckDesignatedInitializer()
2449 SemaRef.Diag(D->getFieldLoc(), in CheckDesignatedInitializer()
2452 SemaRef.Diag(ExistingInit->getBeginLoc(), in CheckDesignatedInitializer()
2459 StructuredList->resizeInits(SemaRef.Context, 0); in CheckDesignatedInitializer()
2470 InvalidUse = !SemaRef.CanUseDecl(*Field, TreatUnavailableAsInvalid); in CheckDesignatedInitializer()
2472 InvalidUse = SemaRef.DiagnoseUseOfDecl(*Field, D->getFieldLoc()); in CheckDesignatedInitializer()
2485 StructuredList->resizeInits(SemaRef.Context, FieldIndex + 1); in CheckDesignatedInitializer()
2497 SemaRef.Diag(NextD->getBeginLoc(), in CheckDesignatedInitializer()
2500 SemaRef.Diag(Field->getLocation(), diag::note_flexible_array_member) in CheckDesignatedInitializer()
2510 SemaRef.Diag(DIE->getInit()->getBeginLoc(), in CheckDesignatedInitializer()
2513 SemaRef.Diag(Field->getLocation(), diag::note_flexible_array_member) in CheckDesignatedInitializer()
2610 const ArrayType *AT = SemaRef.Context.getAsArrayType(CurrentObjectType); in CheckDesignatedInitializer()
2613 SemaRef.Diag(D->getLBracketLoc(), diag::err_array_designator_non_array) in CheckDesignatedInitializer()
2623 DesignatedStartIndex = IndexExpr->EvaluateKnownConstInt(SemaRef.Context); in CheckDesignatedInitializer()
2629 DIE->getArrayRangeStart(*D)->EvaluateKnownConstInt(SemaRef.Context); in CheckDesignatedInitializer()
2631 DIE->getArrayRangeEnd(*D)->EvaluateKnownConstInt(SemaRef.Context); in CheckDesignatedInitializer()
2640 DIE->getInit()->HasSideEffects(SemaRef.Context) && !VerifyOnly) in CheckDesignatedInitializer()
2654 SemaRef.Diag(IndexExpr->getBeginLoc(), in CheckDesignatedInitializer()
2663 ConstantArrayType::getMaxSizeBits(SemaRef.Context); in CheckDesignatedInitializer()
2675 ASTContext &Context = SemaRef.Context; in CheckDesignatedInitializer()
2734 StructuredList->resizeInits(SemaRef.Context, in CheckDesignatedInitializer()
2745 InitializedEntity::InitializeElement(SemaRef.Context, 0, Entity); in CheckDesignatedInitializer()
2826 SemaRef.Diag(InitRange.getBegin(), in getStructuredSubobjectInit()
2829 SemaRef.Diag(ExistingInit->getBeginLoc(), diag::note_previous_initializer) in getStructuredSubobjectInit()
2834 = new (SemaRef.Context) InitListExpr(SemaRef.Context, in getStructuredSubobjectInit()
2840 ResultType = ResultType.getNonLValueExprType(SemaRef.Context); in getStructuredSubobjectInit()
2858 = SemaRef.Context.getAsArrayType(CurrentObjectType)) { in getStructuredSubobjectInit()
2876 Result->reserveInits(SemaRef.Context, NumElements); in getStructuredSubobjectInit()
2881 StructuredList->updateInit(SemaRef.Context, StructuredIndex, Result); in getStructuredSubobjectInit()
2899 if (Expr *PrevInit = StructuredList->updateInit(SemaRef.Context, in UpdateStructuredListElement()
2909 SemaRef.Diag(expr->getBeginLoc(), diag::warn_initializer_overrides) in UpdateStructuredListElement()
2912 SemaRef.Diag(PrevInit->getBeginLoc(), diag::note_previous_initializer) in UpdateStructuredListElement()