Lines Matching refs:FnDecl
15771 const FunctionDecl *FnDecl) { in CheckOperatorNewDeleteDeclarationScope() argument
15772 const DeclContext *DC = FnDecl->getDeclContext()->getRedeclContext(); in CheckOperatorNewDeleteDeclarationScope()
15774 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
15776 << FnDecl->getDeclName(); in CheckOperatorNewDeleteDeclarationScope()
15780 FnDecl->getStorageClass() == SC_Static) { in CheckOperatorNewDeleteDeclarationScope()
15781 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
15783 << FnDecl->getDeclName(); in CheckOperatorNewDeleteDeclarationScope()
15799 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl, in CheckOperatorNewDeleteTypes() argument
15805 FnDecl->getType()->castAs<FunctionType>()->getReturnType(); in CheckOperatorNewDeleteTypes()
15822 FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15826 << FnDecl->getDeclName() << ExpectedResultType; in CheckOperatorNewDeleteTypes()
15830 if (FnDecl->getDescribedFunctionTemplate() && FnDecl->getNumParams() < 2) in CheckOperatorNewDeleteTypes()
15831 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15833 << FnDecl->getDeclName(); in CheckOperatorNewDeleteTypes()
15836 if (FnDecl->getNumParams() == 0) in CheckOperatorNewDeleteTypes()
15837 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15839 << FnDecl->getDeclName(); in CheckOperatorNewDeleteTypes()
15841 QualType FirstParamType = FnDecl->getParamDecl(0)->getType(); in CheckOperatorNewDeleteTypes()
15846 FnDecl->getParamDecl(0)->getType()->getAs<PointerType>()) in CheckOperatorNewDeleteTypes()
15860 return SemaRef.Diag(FnDecl->getLocation(), FirstParamType->isDependentType() in CheckOperatorNewDeleteTypes()
15863 << FnDecl->getDeclName() << ExpectedFirstParamType; in CheckOperatorNewDeleteTypes()
15870 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) { in CheckOperatorNewDeclaration() argument
15875 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorNewDeclaration()
15884 if (CheckOperatorNewDeleteTypes(SemaRef, FnDecl, SemaRef.Context.VoidPtrTy, in CheckOperatorNewDeclaration()
15892 if (FnDecl->getParamDecl(0)->hasDefaultArg()) in CheckOperatorNewDeclaration()
15893 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeclaration()
15895 << FnDecl->getDeclName() << FnDecl->getParamDecl(0)->getDefaultArgRange(); in CheckOperatorNewDeclaration()
15901 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) { in CheckOperatorDeleteDeclaration() argument
15906 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorDeleteDeclaration()
15909 auto *MD = dyn_cast<CXXMethodDecl>(FnDecl); in CheckOperatorDeleteDeclaration()
15924 SemaRef, FnDecl, SemaRef.Context.VoidTy, ExpectedFirstParamType, in CheckOperatorDeleteDeclaration()
15945 bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) { in CheckOverloadedOperatorDeclaration() argument
15946 assert(FnDecl && FnDecl->isOverloadedOperator() && in CheckOverloadedOperatorDeclaration()
15949 OverloadedOperatorKind Op = FnDecl->getOverloadedOperator(); in CheckOverloadedOperatorDeclaration()
15958 return CheckOperatorDeleteDeclaration(*this, FnDecl); in CheckOverloadedOperatorDeclaration()
15961 return CheckOperatorNewDeclaration(*this, FnDecl); in CheckOverloadedOperatorDeclaration()
15970 if (CXXMethodDecl *MethodDecl = dyn_cast<CXXMethodDecl>(FnDecl)) { in CheckOverloadedOperatorDeclaration()
15973 Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
15977 << FnDecl; in CheckOverloadedOperatorDeclaration()
15979 return Diag(FnDecl->getLocation(), diag::err_operator_overload_static) in CheckOverloadedOperatorDeclaration()
15980 << FnDecl; in CheckOverloadedOperatorDeclaration()
15984 for (auto *Param : FnDecl->parameters()) { in CheckOverloadedOperatorDeclaration()
15994 return Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
15996 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
16007 for (auto *Param : FnDecl->parameters()) { in CheckOverloadedOperatorDeclaration()
16015 Diag(FnDecl->getLocation(), LangOpts.CPlusPlus2b in CheckOverloadedOperatorDeclaration()
16018 << FnDecl->getDeclName() << 1 in CheckOverloadedOperatorDeclaration()
16023 << FnDecl->getDeclName() in CheckOverloadedOperatorDeclaration()
16044 unsigned NumParams = FnDecl->getNumParams() in CheckOverloadedOperatorDeclaration()
16045 + (isa<CXXMethodDecl>(FnDecl)? 1 : 0); in CheckOverloadedOperatorDeclaration()
16061 return Diag(FnDecl->getLocation(), diag::err_operator_overload_must_be) in CheckOverloadedOperatorDeclaration()
16062 << FnDecl->getDeclName() << NumParams << ErrorKind; in CheckOverloadedOperatorDeclaration()
16066 Diag(FnDecl->getLocation(), LangOpts.CPlusPlus2b in CheckOverloadedOperatorDeclaration()
16069 << FnDecl->getDeclName() << (NumParams == 1 ? 0 : 2); in CheckOverloadedOperatorDeclaration()
16075 FnDecl->getType()->castAs<FunctionProtoType>()->isVariadic()) { in CheckOverloadedOperatorDeclaration()
16076 return Diag(FnDecl->getLocation(), diag::err_operator_overload_variadic) in CheckOverloadedOperatorDeclaration()
16077 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
16081 if (MustBeMemberOperator && !isa<CXXMethodDecl>(FnDecl)) { in CheckOverloadedOperatorDeclaration()
16082 return Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
16084 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
16098 ParmVarDecl *LastParam = FnDecl->getParamDecl(FnDecl->getNumParams() - 1); in CheckOverloadedOperatorDeclaration()
16169 bool Sema::CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl) { in CheckLiteralOperatorDeclaration() argument
16170 if (isa<CXXMethodDecl>(FnDecl)) { in CheckLiteralOperatorDeclaration()
16171 Diag(FnDecl->getLocation(), diag::err_literal_operator_outside_namespace) in CheckLiteralOperatorDeclaration()
16172 << FnDecl->getDeclName(); in CheckLiteralOperatorDeclaration()
16176 if (FnDecl->isExternC()) { in CheckLiteralOperatorDeclaration()
16177 Diag(FnDecl->getLocation(), diag::err_literal_operator_extern_c); in CheckLiteralOperatorDeclaration()
16179 FnDecl->getDeclContext()->getExternCContext()) in CheckLiteralOperatorDeclaration()
16185 FunctionTemplateDecl *TpDecl = FnDecl->getDescribedFunctionTemplate(); in CheckLiteralOperatorDeclaration()
16189 TpDecl = FnDecl->getPrimaryTemplate(); in CheckLiteralOperatorDeclaration()
16197 if (FnDecl->param_size() != 0) { in CheckLiteralOperatorDeclaration()
16198 Diag(FnDecl->getLocation(), in CheckLiteralOperatorDeclaration()
16206 } else if (FnDecl->param_size() == 1) { in CheckLiteralOperatorDeclaration()
16207 const ParmVarDecl *Param = FnDecl->getParamDecl(0); in CheckLiteralOperatorDeclaration()
16250 } else if (FnDecl->param_size() == 2) { in CheckLiteralOperatorDeclaration()
16251 FunctionDecl::param_iterator Param = FnDecl->param_begin(); in CheckLiteralOperatorDeclaration()
16305 Diag(FnDecl->getLocation(), diag::err_literal_operator_bad_param_count); in CheckLiteralOperatorDeclaration()
16313 for (auto *Param : FnDecl->parameters()) { in CheckLiteralOperatorDeclaration()
16323 = FnDecl->getDeclName().getCXXLiteralIdentifier()->getName(); in CheckLiteralOperatorDeclaration()
16325 !getSourceManager().isInSystemHeader(FnDecl->getLocation())) { in CheckLiteralOperatorDeclaration()
16329 Diag(FnDecl->getLocation(), diag::warn_user_literal_reserved) in CheckLiteralOperatorDeclaration()