Lines Matching refs:FnDecl

13131                                        const FunctionDecl *FnDecl) {  in CheckOperatorNewDeleteDeclarationScope()  argument
13132 const DeclContext *DC = FnDecl->getDeclContext()->getRedeclContext(); in CheckOperatorNewDeleteDeclarationScope()
13134 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
13136 << FnDecl->getDeclName(); in CheckOperatorNewDeleteDeclarationScope()
13140 FnDecl->getStorageClass() == SC_Static) { in CheckOperatorNewDeleteDeclarationScope()
13141 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
13143 << FnDecl->getDeclName(); in CheckOperatorNewDeleteDeclarationScope()
13157 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl, in CheckOperatorNewDeleteTypes() argument
13163 FnDecl->getType()->getAs<FunctionType>()->getReturnType(); in CheckOperatorNewDeleteTypes()
13167 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
13169 << FnDecl->getDeclName() << ExpectedResultType; in CheckOperatorNewDeleteTypes()
13180 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
13182 << FnDecl->getDeclName() << ExpectedResultType; in CheckOperatorNewDeleteTypes()
13185 if (FnDecl->getDescribedFunctionTemplate() && FnDecl->getNumParams() < 2) in CheckOperatorNewDeleteTypes()
13186 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
13188 << FnDecl->getDeclName(); in CheckOperatorNewDeleteTypes()
13191 if (FnDecl->getNumParams() == 0) in CheckOperatorNewDeleteTypes()
13192 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
13194 << FnDecl->getDeclName(); in CheckOperatorNewDeleteTypes()
13197 QualType FirstParamType = FnDecl->getParamDecl(0)->getType(); in CheckOperatorNewDeleteTypes()
13199 return SemaRef.Diag(FnDecl->getLocation(), DependentParamTypeDiag) in CheckOperatorNewDeleteTypes()
13200 << FnDecl->getDeclName() << ExpectedFirstParamType; in CheckOperatorNewDeleteTypes()
13206 FnDecl->getParamDecl(0)->getType()->getAs<PointerType>()) { in CheckOperatorNewDeleteTypes()
13212 return SemaRef.Diag(FnDecl->getLocation(), InvalidParamTypeDiag) in CheckOperatorNewDeleteTypes()
13213 << FnDecl->getDeclName() << ExpectedFirstParamType; in CheckOperatorNewDeleteTypes()
13219 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) { in CheckOperatorNewDeclaration() argument
13224 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorNewDeclaration()
13233 if (CheckOperatorNewDeleteTypes(SemaRef, FnDecl, SemaRef.Context.VoidPtrTy, in CheckOperatorNewDeclaration()
13241 if (FnDecl->getParamDecl(0)->hasDefaultArg()) in CheckOperatorNewDeclaration()
13242 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeclaration()
13244 << FnDecl->getDeclName() << FnDecl->getParamDecl(0)->getDefaultArgRange(); in CheckOperatorNewDeclaration()
13250 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) { in CheckOperatorDeleteDeclaration() argument
13255 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorDeleteDeclaration()
13258 auto *MD = dyn_cast<CXXMethodDecl>(FnDecl); in CheckOperatorDeleteDeclaration()
13273 SemaRef, FnDecl, SemaRef.Context.VoidTy, ExpectedFirstParamType, in CheckOperatorDeleteDeclaration()
13294 bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) { in CheckOverloadedOperatorDeclaration() argument
13295 assert(FnDecl && FnDecl->isOverloadedOperator() && in CheckOverloadedOperatorDeclaration()
13298 OverloadedOperatorKind Op = FnDecl->getOverloadedOperator(); in CheckOverloadedOperatorDeclaration()
13307 return CheckOperatorDeleteDeclaration(*this, FnDecl); in CheckOverloadedOperatorDeclaration()
13310 return CheckOperatorNewDeclaration(*this, FnDecl); in CheckOverloadedOperatorDeclaration()
13317 if (CXXMethodDecl *MethodDecl = dyn_cast<CXXMethodDecl>(FnDecl)) { in CheckOverloadedOperatorDeclaration()
13319 return Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
13320 diag::err_operator_overload_static) << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
13323 for (auto Param : FnDecl->parameters()) { in CheckOverloadedOperatorDeclaration()
13333 return Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
13335 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
13345 for (auto Param : FnDecl->parameters()) { in CheckOverloadedOperatorDeclaration()
13349 << FnDecl->getDeclName() << Param->getDefaultArgRange(); in CheckOverloadedOperatorDeclaration()
13368 unsigned NumParams = FnDecl->getNumParams() in CheckOverloadedOperatorDeclaration()
13369 + (isa<CXXMethodDecl>(FnDecl)? 1 : 0); in CheckOverloadedOperatorDeclaration()
13386 return Diag(FnDecl->getLocation(), diag::err_operator_overload_must_be) in CheckOverloadedOperatorDeclaration()
13387 << FnDecl->getDeclName() << NumParams << ErrorKind; in CheckOverloadedOperatorDeclaration()
13392 FnDecl->getType()->getAs<FunctionProtoType>()->isVariadic()) { in CheckOverloadedOperatorDeclaration()
13393 return Diag(FnDecl->getLocation(), diag::err_operator_overload_variadic) in CheckOverloadedOperatorDeclaration()
13394 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
13398 if (MustBeMemberOperator && !isa<CXXMethodDecl>(FnDecl)) { in CheckOverloadedOperatorDeclaration()
13399 return Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
13401 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
13415 ParmVarDecl *LastParam = FnDecl->getParamDecl(FnDecl->getNumParams() - 1); in CheckOverloadedOperatorDeclaration()
13474 bool Sema::CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl) { in CheckLiteralOperatorDeclaration() argument
13475 if (isa<CXXMethodDecl>(FnDecl)) { in CheckLiteralOperatorDeclaration()
13476 Diag(FnDecl->getLocation(), diag::err_literal_operator_outside_namespace) in CheckLiteralOperatorDeclaration()
13477 << FnDecl->getDeclName(); in CheckLiteralOperatorDeclaration()
13481 if (FnDecl->isExternC()) { in CheckLiteralOperatorDeclaration()
13482 Diag(FnDecl->getLocation(), diag::err_literal_operator_extern_c); in CheckLiteralOperatorDeclaration()
13484 FnDecl->getDeclContext()->getExternCContext()) in CheckLiteralOperatorDeclaration()
13490 FunctionTemplateDecl *TpDecl = FnDecl->getDescribedFunctionTemplate(); in CheckLiteralOperatorDeclaration()
13494 TpDecl = FnDecl->getPrimaryTemplate(); in CheckLiteralOperatorDeclaration()
13500 if (FnDecl->param_size() != 0) { in CheckLiteralOperatorDeclaration()
13501 Diag(FnDecl->getLocation(), in CheckLiteralOperatorDeclaration()
13509 } else if (FnDecl->param_size() == 1) { in CheckLiteralOperatorDeclaration()
13510 const ParmVarDecl *Param = FnDecl->getParamDecl(0); in CheckLiteralOperatorDeclaration()
13553 } else if (FnDecl->param_size() == 2) { in CheckLiteralOperatorDeclaration()
13554 FunctionDecl::param_iterator Param = FnDecl->param_begin(); in CheckLiteralOperatorDeclaration()
13608 Diag(FnDecl->getLocation(), diag::err_literal_operator_bad_param_count); in CheckLiteralOperatorDeclaration()
13616 for (auto Param : FnDecl->parameters()) { in CheckLiteralOperatorDeclaration()
13626 = FnDecl->getDeclName().getCXXLiteralIdentifier()->getName(); in CheckLiteralOperatorDeclaration()
13628 !getSourceManager().isInSystemHeader(FnDecl->getLocation())) { in CheckLiteralOperatorDeclaration()
13632 Diag(FnDecl->getLocation(), diag::warn_user_literal_reserved) in CheckLiteralOperatorDeclaration()