Lines Matching refs:SemaRef
1665 static bool CheckLiteralType(Sema &SemaRef, Sema::CheckConstexprKind Kind, in CheckLiteralType() argument
1673 return SemaRef.RequireLiteralType(Loc, T, DiagID, in CheckLiteralType()
1677 return !T->isLiteralType(SemaRef.Context); in CheckLiteralType()
1684 static bool CheckConstexprDestructorSubobjects(Sema &SemaRef, in CheckConstexprDestructorSubobjects() argument
1694 SemaRef.Diag(DD->getLocation(), diag::err_constexpr_dtor_subobject) in CheckConstexprDestructorSubobjects()
1697 SemaRef.Diag(Loc, diag::note_constexpr_dtor_subobject) in CheckConstexprDestructorSubobjects()
1715 static bool CheckConstexprParameterTypes(Sema &SemaRef, in CheckConstexprParameterTypes() argument
1725 if (CheckLiteralType(SemaRef, Kind, ParamLoc, *i, in CheckConstexprParameterTypes()
1736 static bool CheckConstexprReturnType(Sema &SemaRef, const FunctionDecl *FD, in CheckConstexprReturnType() argument
1738 if (CheckLiteralType(SemaRef, Kind, FD->getLocation(), FD->getReturnType(), in CheckConstexprReturnType()
1759 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
1856 static bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl, in CheckConstexprDeclStmt() argument
1886 SemaRef.Diag(TL.getBeginLoc(), diag::err_constexpr_vla) in CheckConstexprDeclStmt()
1900 SemaRef.Diag(DS->getBeginLoc(), in CheckConstexprDeclStmt()
1901 SemaRef.getLangOpts().CPlusPlus14 in CheckConstexprDeclStmt()
1905 } else if (!SemaRef.getLangOpts().CPlusPlus14) { in CheckConstexprDeclStmt()
1928 SemaRef.Diag(VD->getLocation(), in CheckConstexprDeclStmt()
1929 SemaRef.getLangOpts().CPlusPlus2b in CheckConstexprDeclStmt()
1934 } else if (!SemaRef.getLangOpts().CPlusPlus2b) { in CheckConstexprDeclStmt()
1938 if (SemaRef.LangOpts.CPlusPlus2b) { in CheckConstexprDeclStmt()
1939 CheckLiteralType(SemaRef, Kind, VD->getLocation(), VD->getType(), in CheckConstexprDeclStmt()
1944 SemaRef, Kind, VD->getLocation(), VD->getType(), in CheckConstexprDeclStmt()
1952 SemaRef.Diag( in CheckConstexprDeclStmt()
1954 SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprDeclStmt()
1958 } else if (!SemaRef.getLangOpts().CPlusPlus20) { in CheckConstexprDeclStmt()
1965 SemaRef.Diag(VD->getLocation(), in CheckConstexprDeclStmt()
1966 SemaRef.getLangOpts().CPlusPlus14 in CheckConstexprDeclStmt()
1970 } else if (!SemaRef.getLangOpts().CPlusPlus14) { in CheckConstexprDeclStmt()
1986 SemaRef.Diag(DS->getBeginLoc(), diag::err_constexpr_body_invalid_stmt) in CheckConstexprDeclStmt()
2009 static bool CheckConstexprCtorInitializer(Sema &SemaRef, in CheckConstexprCtorInitializer() argument
2017 SemaRef.getLangOpts().CPlusPlus20) in CheckConstexprCtorInitializer()
2038 SemaRef.Diag(Dcl->getLocation(), in CheckConstexprCtorInitializer()
2039 SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprCtorInitializer()
2044 SemaRef.Diag(Field->getLocation(), in CheckConstexprCtorInitializer()
2046 } else if (!SemaRef.getLangOpts().CPlusPlus20) { in CheckConstexprCtorInitializer()
2055 if (!CheckConstexprCtorInitializer(SemaRef, Dcl, I, Inits, Diagnosed, in CheckConstexprCtorInitializer()
2065 CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S, in CheckConstexprFunctionStmt() argument
2082 if (!CheckConstexprDeclStmt(SemaRef, Dcl, cast<DeclStmt>(S), Cxx1yLoc, Kind)) in CheckConstexprFunctionStmt()
2102 SemaRef, Dcl, cast<AttributedStmt>(S)->getSubStmt(), ReturnStmts, in CheckConstexprFunctionStmt()
2112 if (!CheckConstexprFunctionStmt(SemaRef, Dcl, BodyIt, ReturnStmts, in CheckConstexprFunctionStmt()
2125 if (!CheckConstexprFunctionStmt(SemaRef, Dcl, If->getThen(), ReturnStmts, in CheckConstexprFunctionStmt()
2129 !CheckConstexprFunctionStmt(SemaRef, Dcl, If->getElse(), ReturnStmts, in CheckConstexprFunctionStmt()
2142 if (!SemaRef.getLangOpts().CPlusPlus14) in CheckConstexprFunctionStmt()
2148 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionStmt()
2164 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionStmt()
2176 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionStmt()
2190 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionStmt()
2200 SemaRef, Dcl, cast<CXXCatchStmt>(S)->getHandlerBlock(), ReturnStmts, in CheckConstexprFunctionStmt()
2216 SemaRef.Diag(S->getBeginLoc(), diag::err_constexpr_body_invalid_stmt) in CheckConstexprFunctionStmt()
2227 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl, in CheckConstexprFunctionBody() argument
2247 if (!SemaRef.getLangOpts().CPlusPlus20) in CheckConstexprFunctionBody()
2252 SemaRef.Diag(Body->getBeginLoc(), in CheckConstexprFunctionBody()
2253 !SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprFunctionBody()
2269 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionBody()
2277 if ((Cxx2bLoc.isValid() && !SemaRef.getLangOpts().CPlusPlus2b) || in CheckConstexprFunctionBody()
2278 (Cxx2aLoc.isValid() && !SemaRef.getLangOpts().CPlusPlus20) || in CheckConstexprFunctionBody()
2279 (Cxx1yLoc.isValid() && !SemaRef.getLangOpts().CPlusPlus17)) in CheckConstexprFunctionBody()
2282 SemaRef.Diag(Cxx2bLoc, in CheckConstexprFunctionBody()
2283 SemaRef.getLangOpts().CPlusPlus2b in CheckConstexprFunctionBody()
2288 SemaRef.Diag(Cxx2aLoc, in CheckConstexprFunctionBody()
2289 SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprFunctionBody()
2294 SemaRef.Diag(Cxx1yLoc, in CheckConstexprFunctionBody()
2295 SemaRef.getLangOpts().CPlusPlus14 in CheckConstexprFunctionBody()
2314 SemaRef.Diag( in CheckConstexprFunctionBody()
2316 SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprFunctionBody()
2319 } else if (!SemaRef.getLangOpts().CPlusPlus20) { in CheckConstexprFunctionBody()
2357 if (!CheckConstexprCtorInitializer(SemaRef, Dcl, I, Inits, Diagnosed, in CheckConstexprFunctionBody()
2368 bool OK = SemaRef.getLangOpts().CPlusPlus14 && in CheckConstexprFunctionBody()
2373 SemaRef.Diag(Dcl->getLocation(), in CheckConstexprFunctionBody()
2385 if (!SemaRef.getLangOpts().CPlusPlus14) in CheckConstexprFunctionBody()
2392 SemaRef.Diag( in CheckConstexprFunctionBody()
2394 SemaRef.getLangOpts().CPlusPlus14 in CheckConstexprFunctionBody()
2398 SemaRef.Diag(ReturnStmts[I], in CheckConstexprFunctionBody()
2403 if (!SemaRef.getLangOpts().CPlusPlus14) in CheckConstexprFunctionBody()
2426 SemaRef.Diag(Dcl->getLocation(), in CheckConstexprFunctionBody()
2430 SemaRef.Diag(Diags[I].first, Diags[I].second); in CheckConstexprFunctionBody()
3954 Sema &SemaRef, const CXXConstructorDecl *Constructor) { in DiagnoseUninitializedFields() argument
3956 if (SemaRef.getDiagnostics().isIgnored(diag::warn_field_is_uninit, in DiagnoseUninitializedFields()
3988 UninitializedFieldVisitor UninitializedChecker(SemaRef, in DiagnoseUninitializedFields()
4123 static bool FindBaseInitializer(Sema &SemaRef, in FindBaseInitializer() argument
4131 if (SemaRef.Context.hasSameUnqualifiedType(BaseType, Base.getType())) { in FindBaseInitializer()
4148 if (SemaRef.IsDerivedFrom(ClassDecl->getLocation(), in FindBaseInitializer()
4149 SemaRef.Context.getTypeDeclType(ClassDecl), in FindBaseInitializer()
4714 static Expr *CastForMoving(Sema &SemaRef, Expr *E) { in CastForMoving() argument
4716 SemaRef.BuildReferenceType(E->getType(), /*SpelledAsLValue*/ false, in CastForMoving()
4719 TypeSourceInfo *TargetLoc = SemaRef.Context.getTrivialTypeSourceInfo( in CastForMoving()
4722 return SemaRef.BuildCXXNamedCast(ExprLoc, tok::kw_static_cast, TargetLoc, E, in CastForMoving()
4737 BuildImplicitBaseInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor, in BuildImplicitBaseInitializer() argument
4743 = InitializedEntity::InitializeBase(SemaRef.Context, BaseSpec, in BuildImplicitBaseInitializer()
4753 InitializationSequence InitSeq(SemaRef, InitEntity, InitKind, std::nullopt); in BuildImplicitBaseInitializer()
4754 BaseInit = InitSeq.Perform(SemaRef, InitEntity, InitKind, std::nullopt); in BuildImplicitBaseInitializer()
4765 DeclRefExpr::Create(SemaRef.Context, NestedNameSpecifierLoc(), in BuildImplicitBaseInitializer()
4770 SemaRef.MarkDeclRefReferenced(cast<DeclRefExpr>(CopyCtorArg)); in BuildImplicitBaseInitializer()
4774 SemaRef.Context.getQualifiedType(BaseSpec->getType().getUnqualifiedType(), in BuildImplicitBaseInitializer()
4778 CopyCtorArg = CastForMoving(SemaRef, CopyCtorArg); in BuildImplicitBaseInitializer()
4783 CopyCtorArg = SemaRef.ImpCastExprToType(CopyCtorArg, ArgTy, in BuildImplicitBaseInitializer()
4791 InitializationSequence InitSeq(SemaRef, InitEntity, InitKind, CopyCtorArg); in BuildImplicitBaseInitializer()
4792 BaseInit = InitSeq.Perform(SemaRef, InitEntity, InitKind, CopyCtorArg); in BuildImplicitBaseInitializer()
4797 BaseInit = SemaRef.MaybeCreateExprWithCleanups(BaseInit); in BuildImplicitBaseInitializer()
4802 new (SemaRef.Context) CXXCtorInitializer(SemaRef.Context, in BuildImplicitBaseInitializer()
4803 SemaRef.Context.getTrivialTypeSourceInfo(BaseSpec->getType(), in BuildImplicitBaseInitializer()
4820 BuildImplicitMemberInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor, in BuildImplicitMemberInitializer() argument
4835 if (Field->isZeroLengthBitField(SemaRef.Context)) in BuildImplicitMemberInitializer()
4839 DeclRefExpr::Create(SemaRef.Context, NestedNameSpecifierLoc(), in BuildImplicitMemberInitializer()
4843 SemaRef.MarkDeclRefReferenced(cast<DeclRefExpr>(MemberExprBase)); in BuildImplicitMemberInitializer()
4846 MemberExprBase = CastForMoving(SemaRef, MemberExprBase); in BuildImplicitMemberInitializer()
4851 LookupResult MemberLookup(SemaRef, Field->getDeclName(), Loc, in BuildImplicitMemberInitializer()
4857 = SemaRef.BuildMemberReferenceExpr(MemberExprBase, in BuildImplicitMemberInitializer()
4873 CtorArg = CastForMoving(SemaRef, CtorArg.get()); in BuildImplicitMemberInitializer()
4887 InitializationSequence InitSeq(SemaRef, Entity, InitKind, CtorArgE); in BuildImplicitMemberInitializer()
4889 InitSeq.Perform(SemaRef, Entity, InitKind, MultiExprArg(&CtorArgE, 1)); in BuildImplicitMemberInitializer()
4890 MemberInit = SemaRef.MaybeCreateExprWithCleanups(MemberInit); in BuildImplicitMemberInitializer()
4895 CXXMemberInit = new (SemaRef.Context) CXXCtorInitializer( in BuildImplicitMemberInitializer()
4896 SemaRef.Context, Indirect, Loc, Loc, MemberInit.getAs<Expr>(), Loc); in BuildImplicitMemberInitializer()
4898 CXXMemberInit = new (SemaRef.Context) CXXCtorInitializer( in BuildImplicitMemberInitializer()
4899 SemaRef.Context, Field, Loc, Loc, MemberInit.getAs<Expr>(), Loc); in BuildImplicitMemberInitializer()
4907 SemaRef.Context.getBaseElementType(Field->getType()); in BuildImplicitMemberInitializer()
4918 InitializationSequence InitSeq(SemaRef, InitEntity, InitKind, std::nullopt); in BuildImplicitMemberInitializer()
4920 InitSeq.Perform(SemaRef, InitEntity, InitKind, std::nullopt); in BuildImplicitMemberInitializer()
4922 MemberInit = SemaRef.MaybeCreateExprWithCleanups(MemberInit); in BuildImplicitMemberInitializer()
4927 CXXMemberInit = new (SemaRef.Context) CXXCtorInitializer(SemaRef.Context, in BuildImplicitMemberInitializer()
4933 CXXMemberInit = new (SemaRef.Context) CXXCtorInitializer(SemaRef.Context, in BuildImplicitMemberInitializer()
4942 SemaRef.Diag(Constructor->getLocation(), in BuildImplicitMemberInitializer()
4945 << SemaRef.Context.getTagDeclType(Constructor->getParent()) in BuildImplicitMemberInitializer()
4947 SemaRef.Diag(Field->getLocation(), diag::note_declared_at); in BuildImplicitMemberInitializer()
4952 SemaRef.Diag(Constructor->getLocation(), in BuildImplicitMemberInitializer()
4955 << SemaRef.Context.getTagDeclType(Constructor->getParent()) in BuildImplicitMemberInitializer()
4957 SemaRef.Diag(Field->getLocation(), diag::note_declared_at); in BuildImplicitMemberInitializer()
4966 = new (SemaRef.Context) CXXCtorInitializer(SemaRef.Context, Field, in BuildImplicitMemberInitializer()
4968 new (SemaRef.Context) ImplicitValueInitExpr(Field->getType()), in BuildImplicitMemberInitializer()
5084 static bool CollectFieldInitializer(Sema &SemaRef, BaseAndFieldInfo &Info, in CollectFieldInitializer() argument
5112 SemaRef.BuildCXXDefaultInitExpr(Info.Ctor->getLocation(), Field); in CollectFieldInitializer()
5117 SemaRef.checkInitializerLifetime(Entity, DIE.get()); in CollectFieldInitializer()
5121 Init = new (SemaRef.Context) in CollectFieldInitializer()
5122 CXXCtorInitializer(SemaRef.Context, Indirect, SourceLocation(), in CollectFieldInitializer()
5125 Init = new (SemaRef.Context) in CollectFieldInitializer()
5126 CXXCtorInitializer(SemaRef.Context, Field, SourceLocation(), in CollectFieldInitializer()
5132 if (isIncompleteOrZeroLengthArrayType(SemaRef.Context, Field->getType())) in CollectFieldInitializer()
5389 Sema &SemaRef, const CXXConstructorDecl *Constructor, in DiagnoseBaseOrMemInitializerOrder() argument
5399 if (!SemaRef.Diags.isIgnored(diag::warn_initializer_out_of_order, in DiagnoseBaseOrMemInitializerOrder()
5417 IdealInitKeys.push_back(GetKeyForBase(SemaRef.Context, VBase.getType())); in DiagnoseBaseOrMemInitializerOrder()
5423 IdealInitKeys.push_back(GetKeyForBase(SemaRef.Context, Base.getType())); in DiagnoseBaseOrMemInitializerOrder()
5445 const void *InitKey = GetKeyForMember(SemaRef.Context, Inits[InitIndex]); in DiagnoseBaseOrMemInitializerOrder()
5479 Sema::SemaDiagnosticBuilder D = SemaRef.Diag( in DiagnoseBaseOrMemInitializerOrder()
5495 SemaRef.getSourceManager(), SemaRef.getLangOpts())); in DiagnoseBaseOrMemInitializerOrder()
5510 auto D = SemaRef.Diag(PrevInit->getSourceLocation(), in DiagnoseBaseOrMemInitializerOrder()
15770 CheckOperatorNewDeleteDeclarationScope(Sema &SemaRef, in CheckOperatorNewDeleteDeclarationScope() argument
15774 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
15781 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
15789 static CanQualType RemoveAddressSpaceFromPtr(Sema &SemaRef, in RemoveAddressSpaceFromPtr() argument
15791 auto &Ctx = SemaRef.Context; in RemoveAddressSpaceFromPtr()
15799 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl, in CheckOperatorNewDeleteTypes() argument
15807 if (SemaRef.getLangOpts().OpenCLCPlusPlus) { in CheckOperatorNewDeleteTypes()
15811 ResultType = RemoveAddressSpaceFromPtr(SemaRef, PtrTy); in CheckOperatorNewDeleteTypes()
15814 ExpectedResultType = RemoveAddressSpaceFromPtr(SemaRef, ExpectedPtrTy); in CheckOperatorNewDeleteTypes()
15818 if (SemaRef.Context.getCanonicalType(ResultType) != ExpectedResultType) { in CheckOperatorNewDeleteTypes()
15821 return SemaRef.Diag( in CheckOperatorNewDeleteTypes()
15831 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15837 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15842 if (SemaRef.getLangOpts().OpenCLCPlusPlus) { in CheckOperatorNewDeleteTypes()
15847 FirstParamType = RemoveAddressSpaceFromPtr(SemaRef, PtrTy); in CheckOperatorNewDeleteTypes()
15851 RemoveAddressSpaceFromPtr(SemaRef, ExpectedPtrTy); in CheckOperatorNewDeleteTypes()
15855 if (SemaRef.Context.getCanonicalType(FirstParamType).getUnqualifiedType() != in CheckOperatorNewDeleteTypes()
15860 return SemaRef.Diag(FnDecl->getLocation(), FirstParamType->isDependentType() in CheckOperatorNewDeleteTypes()
15870 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) { in CheckOperatorNewDeclaration() argument
15875 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorNewDeclaration()
15879 SemaRef.Context.getCanonicalType(SemaRef.Context.getSizeType()); in CheckOperatorNewDeclaration()
15884 if (CheckOperatorNewDeleteTypes(SemaRef, FnDecl, SemaRef.Context.VoidPtrTy, in CheckOperatorNewDeclaration()
15893 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeclaration()
15901 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) { in CheckOperatorDeleteDeclaration() argument
15906 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorDeleteDeclaration()
15917 ? SemaRef.Context.getCanonicalType(SemaRef.Context.getPointerType( in CheckOperatorDeleteDeclaration()
15918 SemaRef.Context.getRecordType(MD->getParent()))) in CheckOperatorDeleteDeclaration()
15919 : SemaRef.Context.VoidPtrTy; in CheckOperatorDeleteDeclaration()
15924 SemaRef, FnDecl, SemaRef.Context.VoidTy, ExpectedFirstParamType, in CheckOperatorDeleteDeclaration()
15933 !SemaRef.isUsualDeallocationFunction(MD)) { in CheckOperatorDeleteDeclaration()
15934 SemaRef.Diag(MD->getLocation(), in CheckOperatorDeleteDeclaration()
16112 checkLiteralOperatorTemplateParameterList(Sema &SemaRef, in checkLiteralOperatorTemplateParameterList() argument
16123 SemaRef.Context.hasSameType(PmDecl->getType(), SemaRef.Context.CharTy)) in checkLiteralOperatorTemplateParameterList()
16133 if (SemaRef.getLangOpts().CPlusPlus20 && PmDecl && in checkLiteralOperatorTemplateParameterList()
16152 if (!SemaRef.inTemplateInstantiation()) in checkLiteralOperatorTemplateParameterList()
16153 SemaRef.Diag(TpDecl->getLocation(), in checkLiteralOperatorTemplateParameterList()
16160 SemaRef.Diag(TpDecl->getTemplateParameters()->getSourceRange().getBegin(), in checkLiteralOperatorTemplateParameterList()