Lines Matching refs:SemaRef
1631 static bool CheckLiteralType(Sema &SemaRef, Sema::CheckConstexprKind Kind, in CheckLiteralType() argument
1639 return SemaRef.RequireLiteralType(Loc, T, DiagID, in CheckLiteralType()
1643 return !T->isLiteralType(SemaRef.Context); in CheckLiteralType()
1650 static bool CheckConstexprDestructorSubobjects(Sema &SemaRef, in CheckConstexprDestructorSubobjects() argument
1660 SemaRef.Diag(DD->getLocation(), diag::err_constexpr_dtor_subobject) in CheckConstexprDestructorSubobjects()
1663 SemaRef.Diag(Loc, diag::note_constexpr_dtor_subobject) in CheckConstexprDestructorSubobjects()
1681 static bool CheckConstexprParameterTypes(Sema &SemaRef, in CheckConstexprParameterTypes() argument
1691 if (CheckLiteralType(SemaRef, Kind, ParamLoc, *i, in CheckConstexprParameterTypes()
1702 static bool CheckConstexprReturnType(Sema &SemaRef, const FunctionDecl *FD, in CheckConstexprReturnType() argument
1704 if (CheckLiteralType(SemaRef, Kind, FD->getLocation(), FD->getReturnType(), in CheckConstexprReturnType()
1725 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
1822 static bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl, in CheckConstexprDeclStmt() argument
1852 SemaRef.Diag(TL.getBeginLoc(), diag::err_constexpr_vla) in CheckConstexprDeclStmt()
1866 SemaRef.Diag(DS->getBeginLoc(), in CheckConstexprDeclStmt()
1867 SemaRef.getLangOpts().CPlusPlus14 in CheckConstexprDeclStmt()
1871 } else if (!SemaRef.getLangOpts().CPlusPlus14) { in CheckConstexprDeclStmt()
1894 SemaRef.Diag(VD->getLocation(), in CheckConstexprDeclStmt()
1895 SemaRef.getLangOpts().CPlusPlus2b in CheckConstexprDeclStmt()
1900 } else if (!SemaRef.getLangOpts().CPlusPlus2b) { in CheckConstexprDeclStmt()
1904 if (SemaRef.LangOpts.CPlusPlus2b) { in CheckConstexprDeclStmt()
1905 CheckLiteralType(SemaRef, Kind, VD->getLocation(), VD->getType(), in CheckConstexprDeclStmt()
1910 SemaRef, Kind, VD->getLocation(), VD->getType(), in CheckConstexprDeclStmt()
1918 SemaRef.Diag( in CheckConstexprDeclStmt()
1920 SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprDeclStmt()
1924 } else if (!SemaRef.getLangOpts().CPlusPlus20) { in CheckConstexprDeclStmt()
1931 SemaRef.Diag(VD->getLocation(), in CheckConstexprDeclStmt()
1932 SemaRef.getLangOpts().CPlusPlus14 in CheckConstexprDeclStmt()
1936 } else if (!SemaRef.getLangOpts().CPlusPlus14) { in CheckConstexprDeclStmt()
1952 SemaRef.Diag(DS->getBeginLoc(), diag::err_constexpr_body_invalid_stmt) in CheckConstexprDeclStmt()
1975 static bool CheckConstexprCtorInitializer(Sema &SemaRef, in CheckConstexprCtorInitializer() argument
1983 SemaRef.getLangOpts().CPlusPlus20) in CheckConstexprCtorInitializer()
2004 SemaRef.Diag(Dcl->getLocation(), in CheckConstexprCtorInitializer()
2005 SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprCtorInitializer()
2010 SemaRef.Diag(Field->getLocation(), in CheckConstexprCtorInitializer()
2012 } else if (!SemaRef.getLangOpts().CPlusPlus20) { in CheckConstexprCtorInitializer()
2021 if (!CheckConstexprCtorInitializer(SemaRef, Dcl, I, Inits, Diagnosed, in CheckConstexprCtorInitializer()
2031 CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S, in CheckConstexprFunctionStmt() argument
2048 if (!CheckConstexprDeclStmt(SemaRef, Dcl, cast<DeclStmt>(S), Cxx1yLoc, Kind)) in CheckConstexprFunctionStmt()
2068 SemaRef, Dcl, cast<AttributedStmt>(S)->getSubStmt(), ReturnStmts, in CheckConstexprFunctionStmt()
2078 if (!CheckConstexprFunctionStmt(SemaRef, Dcl, BodyIt, ReturnStmts, in CheckConstexprFunctionStmt()
2091 if (!CheckConstexprFunctionStmt(SemaRef, Dcl, If->getThen(), ReturnStmts, in CheckConstexprFunctionStmt()
2095 !CheckConstexprFunctionStmt(SemaRef, Dcl, If->getElse(), ReturnStmts, in CheckConstexprFunctionStmt()
2108 if (!SemaRef.getLangOpts().CPlusPlus14) in CheckConstexprFunctionStmt()
2114 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionStmt()
2130 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionStmt()
2142 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionStmt()
2156 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionStmt()
2166 SemaRef, Dcl, cast<CXXCatchStmt>(S)->getHandlerBlock(), ReturnStmts, in CheckConstexprFunctionStmt()
2182 SemaRef.Diag(S->getBeginLoc(), diag::err_constexpr_body_invalid_stmt) in CheckConstexprFunctionStmt()
2193 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl, in CheckConstexprFunctionBody() argument
2213 if (!SemaRef.getLangOpts().CPlusPlus20) in CheckConstexprFunctionBody()
2218 SemaRef.Diag(Body->getBeginLoc(), in CheckConstexprFunctionBody()
2219 !SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprFunctionBody()
2235 !CheckConstexprFunctionStmt(SemaRef, Dcl, SubStmt, ReturnStmts, in CheckConstexprFunctionBody()
2243 if ((Cxx2bLoc.isValid() && !SemaRef.getLangOpts().CPlusPlus2b) || in CheckConstexprFunctionBody()
2244 (Cxx2aLoc.isValid() && !SemaRef.getLangOpts().CPlusPlus20) || in CheckConstexprFunctionBody()
2245 (Cxx1yLoc.isValid() && !SemaRef.getLangOpts().CPlusPlus17)) in CheckConstexprFunctionBody()
2248 SemaRef.Diag(Cxx2bLoc, in CheckConstexprFunctionBody()
2249 SemaRef.getLangOpts().CPlusPlus2b in CheckConstexprFunctionBody()
2254 SemaRef.Diag(Cxx2aLoc, in CheckConstexprFunctionBody()
2255 SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprFunctionBody()
2260 SemaRef.Diag(Cxx1yLoc, in CheckConstexprFunctionBody()
2261 SemaRef.getLangOpts().CPlusPlus14 in CheckConstexprFunctionBody()
2280 SemaRef.Diag( in CheckConstexprFunctionBody()
2282 SemaRef.getLangOpts().CPlusPlus20 in CheckConstexprFunctionBody()
2285 } else if (!SemaRef.getLangOpts().CPlusPlus20) { in CheckConstexprFunctionBody()
2323 if (!CheckConstexprCtorInitializer(SemaRef, Dcl, I, Inits, Diagnosed, in CheckConstexprFunctionBody()
2334 bool OK = SemaRef.getLangOpts().CPlusPlus14 && in CheckConstexprFunctionBody()
2339 SemaRef.Diag(Dcl->getLocation(), in CheckConstexprFunctionBody()
2351 if (!SemaRef.getLangOpts().CPlusPlus14) in CheckConstexprFunctionBody()
2358 SemaRef.Diag( in CheckConstexprFunctionBody()
2360 SemaRef.getLangOpts().CPlusPlus14 in CheckConstexprFunctionBody()
2364 SemaRef.Diag(ReturnStmts[I], in CheckConstexprFunctionBody()
2369 if (!SemaRef.getLangOpts().CPlusPlus14) in CheckConstexprFunctionBody()
2392 SemaRef.Diag(Dcl->getLocation(), in CheckConstexprFunctionBody()
2396 SemaRef.Diag(Diags[I].first, Diags[I].second); in CheckConstexprFunctionBody()
3920 Sema &SemaRef, const CXXConstructorDecl *Constructor) { in DiagnoseUninitializedFields() argument
3922 if (SemaRef.getDiagnostics().isIgnored(diag::warn_field_is_uninit, in DiagnoseUninitializedFields()
3954 UninitializedFieldVisitor UninitializedChecker(SemaRef, in DiagnoseUninitializedFields()
4087 static bool FindBaseInitializer(Sema &SemaRef, in FindBaseInitializer() argument
4095 if (SemaRef.Context.hasSameUnqualifiedType(BaseType, Base.getType())) { in FindBaseInitializer()
4112 if (SemaRef.IsDerivedFrom(ClassDecl->getLocation(), in FindBaseInitializer()
4113 SemaRef.Context.getTypeDeclType(ClassDecl), in FindBaseInitializer()
4673 static Expr *CastForMoving(Sema &SemaRef, Expr *E, QualType T = QualType()) { in CastForMoving() argument
4675 QualType TargetType = SemaRef.BuildReferenceType( in CastForMoving()
4678 TypeSourceInfo *TargetLoc = SemaRef.Context.getTrivialTypeSourceInfo( in CastForMoving()
4681 return SemaRef.BuildCXXNamedCast(ExprLoc, tok::kw_static_cast, TargetLoc, E, in CastForMoving()
4696 BuildImplicitBaseInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor, in BuildImplicitBaseInitializer() argument
4702 = InitializedEntity::InitializeBase(SemaRef.Context, BaseSpec, in BuildImplicitBaseInitializer()
4712 InitializationSequence InitSeq(SemaRef, InitEntity, InitKind, None); in BuildImplicitBaseInitializer()
4713 BaseInit = InitSeq.Perform(SemaRef, InitEntity, InitKind, None); in BuildImplicitBaseInitializer()
4724 DeclRefExpr::Create(SemaRef.Context, NestedNameSpecifierLoc(), in BuildImplicitBaseInitializer()
4729 SemaRef.MarkDeclRefReferenced(cast<DeclRefExpr>(CopyCtorArg)); in BuildImplicitBaseInitializer()
4733 SemaRef.Context.getQualifiedType(BaseSpec->getType().getUnqualifiedType(), in BuildImplicitBaseInitializer()
4737 CopyCtorArg = CastForMoving(SemaRef, CopyCtorArg); in BuildImplicitBaseInitializer()
4742 CopyCtorArg = SemaRef.ImpCastExprToType(CopyCtorArg, ArgTy, in BuildImplicitBaseInitializer()
4750 InitializationSequence InitSeq(SemaRef, InitEntity, InitKind, CopyCtorArg); in BuildImplicitBaseInitializer()
4751 BaseInit = InitSeq.Perform(SemaRef, InitEntity, InitKind, CopyCtorArg); in BuildImplicitBaseInitializer()
4756 BaseInit = SemaRef.MaybeCreateExprWithCleanups(BaseInit); in BuildImplicitBaseInitializer()
4761 new (SemaRef.Context) CXXCtorInitializer(SemaRef.Context, in BuildImplicitBaseInitializer()
4762 SemaRef.Context.getTrivialTypeSourceInfo(BaseSpec->getType(), in BuildImplicitBaseInitializer()
4779 BuildImplicitMemberInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor, in BuildImplicitMemberInitializer() argument
4794 if (Field->isZeroLengthBitField(SemaRef.Context)) in BuildImplicitMemberInitializer()
4798 DeclRefExpr::Create(SemaRef.Context, NestedNameSpecifierLoc(), in BuildImplicitMemberInitializer()
4802 SemaRef.MarkDeclRefReferenced(cast<DeclRefExpr>(MemberExprBase)); in BuildImplicitMemberInitializer()
4805 MemberExprBase = CastForMoving(SemaRef, MemberExprBase); in BuildImplicitMemberInitializer()
4810 LookupResult MemberLookup(SemaRef, Field->getDeclName(), Loc, in BuildImplicitMemberInitializer()
4816 = SemaRef.BuildMemberReferenceExpr(MemberExprBase, in BuildImplicitMemberInitializer()
4832 CtorArg = CastForMoving(SemaRef, CtorArg.get()); in BuildImplicitMemberInitializer()
4846 InitializationSequence InitSeq(SemaRef, Entity, InitKind, CtorArgE); in BuildImplicitMemberInitializer()
4848 InitSeq.Perform(SemaRef, Entity, InitKind, MultiExprArg(&CtorArgE, 1)); in BuildImplicitMemberInitializer()
4849 MemberInit = SemaRef.MaybeCreateExprWithCleanups(MemberInit); in BuildImplicitMemberInitializer()
4854 CXXMemberInit = new (SemaRef.Context) CXXCtorInitializer( in BuildImplicitMemberInitializer()
4855 SemaRef.Context, Indirect, Loc, Loc, MemberInit.getAs<Expr>(), Loc); in BuildImplicitMemberInitializer()
4857 CXXMemberInit = new (SemaRef.Context) CXXCtorInitializer( in BuildImplicitMemberInitializer()
4858 SemaRef.Context, Field, Loc, Loc, MemberInit.getAs<Expr>(), Loc); in BuildImplicitMemberInitializer()
4866 SemaRef.Context.getBaseElementType(Field->getType()); in BuildImplicitMemberInitializer()
4877 InitializationSequence InitSeq(SemaRef, InitEntity, InitKind, None); in BuildImplicitMemberInitializer()
4879 InitSeq.Perform(SemaRef, InitEntity, InitKind, None); in BuildImplicitMemberInitializer()
4881 MemberInit = SemaRef.MaybeCreateExprWithCleanups(MemberInit); in BuildImplicitMemberInitializer()
4886 CXXMemberInit = new (SemaRef.Context) CXXCtorInitializer(SemaRef.Context, in BuildImplicitMemberInitializer()
4892 CXXMemberInit = new (SemaRef.Context) CXXCtorInitializer(SemaRef.Context, in BuildImplicitMemberInitializer()
4901 SemaRef.Diag(Constructor->getLocation(), in BuildImplicitMemberInitializer()
4904 << SemaRef.Context.getTagDeclType(Constructor->getParent()) in BuildImplicitMemberInitializer()
4906 SemaRef.Diag(Field->getLocation(), diag::note_declared_at); in BuildImplicitMemberInitializer()
4911 SemaRef.Diag(Constructor->getLocation(), in BuildImplicitMemberInitializer()
4914 << SemaRef.Context.getTagDeclType(Constructor->getParent()) in BuildImplicitMemberInitializer()
4916 SemaRef.Diag(Field->getLocation(), diag::note_declared_at); in BuildImplicitMemberInitializer()
4925 = new (SemaRef.Context) CXXCtorInitializer(SemaRef.Context, Field, in BuildImplicitMemberInitializer()
4927 new (SemaRef.Context) ImplicitValueInitExpr(Field->getType()), in BuildImplicitMemberInitializer()
5043 static bool CollectFieldInitializer(Sema &SemaRef, BaseAndFieldInfo &Info, in CollectFieldInitializer() argument
5071 SemaRef.BuildCXXDefaultInitExpr(Info.Ctor->getLocation(), Field); in CollectFieldInitializer()
5076 SemaRef.checkInitializerLifetime(Entity, DIE.get()); in CollectFieldInitializer()
5080 Init = new (SemaRef.Context) in CollectFieldInitializer()
5081 CXXCtorInitializer(SemaRef.Context, Indirect, SourceLocation(), in CollectFieldInitializer()
5084 Init = new (SemaRef.Context) in CollectFieldInitializer()
5085 CXXCtorInitializer(SemaRef.Context, Field, SourceLocation(), in CollectFieldInitializer()
5091 if (isIncompleteOrZeroLengthArrayType(SemaRef.Context, Field->getType())) in CollectFieldInitializer()
5348 Sema &SemaRef, const CXXConstructorDecl *Constructor, in DiagnoseBaseOrMemInitializerOrder() argument
5358 if (!SemaRef.Diags.isIgnored(diag::warn_initializer_out_of_order, in DiagnoseBaseOrMemInitializerOrder()
5376 IdealInitKeys.push_back(GetKeyForBase(SemaRef.Context, VBase.getType())); in DiagnoseBaseOrMemInitializerOrder()
5382 IdealInitKeys.push_back(GetKeyForBase(SemaRef.Context, Base.getType())); in DiagnoseBaseOrMemInitializerOrder()
5404 const void *InitKey = GetKeyForMember(SemaRef.Context, Inits[InitIndex]); in DiagnoseBaseOrMemInitializerOrder()
5438 Sema::SemaDiagnosticBuilder D = SemaRef.Diag( in DiagnoseBaseOrMemInitializerOrder()
5454 SemaRef.getSourceManager(), SemaRef.getLangOpts())); in DiagnoseBaseOrMemInitializerOrder()
5469 auto D = SemaRef.Diag(PrevInit->getSourceLocation(), in DiagnoseBaseOrMemInitializerOrder()
15711 CheckOperatorNewDeleteDeclarationScope(Sema &SemaRef, in CheckOperatorNewDeleteDeclarationScope() argument
15715 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
15722 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
15730 static CanQualType RemoveAddressSpaceFromPtr(Sema &SemaRef, in RemoveAddressSpaceFromPtr() argument
15732 auto &Ctx = SemaRef.Context; in RemoveAddressSpaceFromPtr()
15740 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl, in CheckOperatorNewDeleteTypes() argument
15748 if (SemaRef.getLangOpts().OpenCLCPlusPlus) { in CheckOperatorNewDeleteTypes()
15752 ResultType = RemoveAddressSpaceFromPtr(SemaRef, PtrTy); in CheckOperatorNewDeleteTypes()
15755 ExpectedResultType = RemoveAddressSpaceFromPtr(SemaRef, ExpectedPtrTy); in CheckOperatorNewDeleteTypes()
15759 if (SemaRef.Context.getCanonicalType(ResultType) != ExpectedResultType) { in CheckOperatorNewDeleteTypes()
15762 return SemaRef.Diag( in CheckOperatorNewDeleteTypes()
15772 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15778 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15783 if (SemaRef.getLangOpts().OpenCLCPlusPlus) { in CheckOperatorNewDeleteTypes()
15788 FirstParamType = RemoveAddressSpaceFromPtr(SemaRef, PtrTy); in CheckOperatorNewDeleteTypes()
15792 RemoveAddressSpaceFromPtr(SemaRef, ExpectedPtrTy); in CheckOperatorNewDeleteTypes()
15796 if (SemaRef.Context.getCanonicalType(FirstParamType).getUnqualifiedType() != in CheckOperatorNewDeleteTypes()
15801 return SemaRef.Diag(FnDecl->getLocation(), FirstParamType->isDependentType() in CheckOperatorNewDeleteTypes()
15811 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) { in CheckOperatorNewDeclaration() argument
15816 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorNewDeclaration()
15820 SemaRef.Context.getCanonicalType(SemaRef.Context.getSizeType()); in CheckOperatorNewDeclaration()
15825 if (CheckOperatorNewDeleteTypes(SemaRef, FnDecl, SemaRef.Context.VoidPtrTy, in CheckOperatorNewDeclaration()
15834 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeclaration()
15842 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) { in CheckOperatorDeleteDeclaration() argument
15847 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorDeleteDeclaration()
15858 ? SemaRef.Context.getCanonicalType(SemaRef.Context.getPointerType( in CheckOperatorDeleteDeclaration()
15859 SemaRef.Context.getRecordType(MD->getParent()))) in CheckOperatorDeleteDeclaration()
15860 : SemaRef.Context.VoidPtrTy; in CheckOperatorDeleteDeclaration()
15865 SemaRef, FnDecl, SemaRef.Context.VoidTy, ExpectedFirstParamType, in CheckOperatorDeleteDeclaration()
15874 !SemaRef.isUsualDeallocationFunction(MD)) { in CheckOperatorDeleteDeclaration()
15875 SemaRef.Diag(MD->getLocation(), in CheckOperatorDeleteDeclaration()
16043 checkLiteralOperatorTemplateParameterList(Sema &SemaRef, in checkLiteralOperatorTemplateParameterList() argument
16054 SemaRef.Context.hasSameType(PmDecl->getType(), SemaRef.Context.CharTy)) in checkLiteralOperatorTemplateParameterList()
16064 if (SemaRef.getLangOpts().CPlusPlus20 && PmDecl && in checkLiteralOperatorTemplateParameterList()
16083 if (!SemaRef.inTemplateInstantiation()) in checkLiteralOperatorTemplateParameterList()
16084 SemaRef.Diag(TpDecl->getLocation(), in checkLiteralOperatorTemplateParameterList()
16091 SemaRef.Diag(TpDecl->getTemplateParameters()->getSourceRange().getBegin(), in checkLiteralOperatorTemplateParameterList()