Lines Matching refs:FnDecl
15712 const FunctionDecl *FnDecl) { in CheckOperatorNewDeleteDeclarationScope() argument
15713 const DeclContext *DC = FnDecl->getDeclContext()->getRedeclContext(); in CheckOperatorNewDeleteDeclarationScope()
15715 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
15717 << FnDecl->getDeclName(); in CheckOperatorNewDeleteDeclarationScope()
15721 FnDecl->getStorageClass() == SC_Static) { in CheckOperatorNewDeleteDeclarationScope()
15722 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteDeclarationScope()
15724 << FnDecl->getDeclName(); in CheckOperatorNewDeleteDeclarationScope()
15740 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl, in CheckOperatorNewDeleteTypes() argument
15746 FnDecl->getType()->castAs<FunctionType>()->getReturnType(); in CheckOperatorNewDeleteTypes()
15763 FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15767 << FnDecl->getDeclName() << ExpectedResultType; in CheckOperatorNewDeleteTypes()
15771 if (FnDecl->getDescribedFunctionTemplate() && FnDecl->getNumParams() < 2) in CheckOperatorNewDeleteTypes()
15772 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15774 << FnDecl->getDeclName(); in CheckOperatorNewDeleteTypes()
15777 if (FnDecl->getNumParams() == 0) in CheckOperatorNewDeleteTypes()
15778 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeleteTypes()
15780 << FnDecl->getDeclName(); in CheckOperatorNewDeleteTypes()
15782 QualType FirstParamType = FnDecl->getParamDecl(0)->getType(); in CheckOperatorNewDeleteTypes()
15787 FnDecl->getParamDecl(0)->getType()->getAs<PointerType>()) in CheckOperatorNewDeleteTypes()
15801 return SemaRef.Diag(FnDecl->getLocation(), FirstParamType->isDependentType() in CheckOperatorNewDeleteTypes()
15804 << FnDecl->getDeclName() << ExpectedFirstParamType; in CheckOperatorNewDeleteTypes()
15811 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) { in CheckOperatorNewDeclaration() argument
15816 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorNewDeclaration()
15825 if (CheckOperatorNewDeleteTypes(SemaRef, FnDecl, SemaRef.Context.VoidPtrTy, in CheckOperatorNewDeclaration()
15833 if (FnDecl->getParamDecl(0)->hasDefaultArg()) in CheckOperatorNewDeclaration()
15834 return SemaRef.Diag(FnDecl->getLocation(), in CheckOperatorNewDeclaration()
15836 << FnDecl->getDeclName() << FnDecl->getParamDecl(0)->getDefaultArgRange(); in CheckOperatorNewDeclaration()
15842 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) { in CheckOperatorDeleteDeclaration() argument
15847 if (CheckOperatorNewDeleteDeclarationScope(SemaRef, FnDecl)) in CheckOperatorDeleteDeclaration()
15850 auto *MD = dyn_cast<CXXMethodDecl>(FnDecl); in CheckOperatorDeleteDeclaration()
15865 SemaRef, FnDecl, SemaRef.Context.VoidTy, ExpectedFirstParamType, in CheckOperatorDeleteDeclaration()
15886 bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) { in CheckOverloadedOperatorDeclaration() argument
15887 assert(FnDecl && FnDecl->isOverloadedOperator() && in CheckOverloadedOperatorDeclaration()
15890 OverloadedOperatorKind Op = FnDecl->getOverloadedOperator(); in CheckOverloadedOperatorDeclaration()
15899 return CheckOperatorDeleteDeclaration(*this, FnDecl); in CheckOverloadedOperatorDeclaration()
15902 return CheckOperatorNewDeclaration(*this, FnDecl); in CheckOverloadedOperatorDeclaration()
15909 if (CXXMethodDecl *MethodDecl = dyn_cast<CXXMethodDecl>(FnDecl)) { in CheckOverloadedOperatorDeclaration()
15911 return Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
15912 diag::err_operator_overload_static) << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
15915 for (auto Param : FnDecl->parameters()) { in CheckOverloadedOperatorDeclaration()
15925 return Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
15927 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
15938 for (auto Param : FnDecl->parameters()) { in CheckOverloadedOperatorDeclaration()
15946 Diag(FnDecl->getLocation(), LangOpts.CPlusPlus2b in CheckOverloadedOperatorDeclaration()
15949 << FnDecl->getDeclName() << 1 in CheckOverloadedOperatorDeclaration()
15954 << FnDecl->getDeclName() in CheckOverloadedOperatorDeclaration()
15975 unsigned NumParams = FnDecl->getNumParams() in CheckOverloadedOperatorDeclaration()
15976 + (isa<CXXMethodDecl>(FnDecl)? 1 : 0); in CheckOverloadedOperatorDeclaration()
15992 return Diag(FnDecl->getLocation(), diag::err_operator_overload_must_be) in CheckOverloadedOperatorDeclaration()
15993 << FnDecl->getDeclName() << NumParams << ErrorKind; in CheckOverloadedOperatorDeclaration()
15997 Diag(FnDecl->getLocation(), LangOpts.CPlusPlus2b in CheckOverloadedOperatorDeclaration()
16000 << FnDecl->getDeclName() << (NumParams == 1 ? 0 : 2); in CheckOverloadedOperatorDeclaration()
16006 FnDecl->getType()->castAs<FunctionProtoType>()->isVariadic()) { in CheckOverloadedOperatorDeclaration()
16007 return Diag(FnDecl->getLocation(), diag::err_operator_overload_variadic) in CheckOverloadedOperatorDeclaration()
16008 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
16012 if (MustBeMemberOperator && !isa<CXXMethodDecl>(FnDecl)) { in CheckOverloadedOperatorDeclaration()
16013 return Diag(FnDecl->getLocation(), in CheckOverloadedOperatorDeclaration()
16015 << FnDecl->getDeclName(); in CheckOverloadedOperatorDeclaration()
16029 ParmVarDecl *LastParam = FnDecl->getParamDecl(FnDecl->getNumParams() - 1); in CheckOverloadedOperatorDeclaration()
16100 bool Sema::CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl) { in CheckLiteralOperatorDeclaration() argument
16101 if (isa<CXXMethodDecl>(FnDecl)) { in CheckLiteralOperatorDeclaration()
16102 Diag(FnDecl->getLocation(), diag::err_literal_operator_outside_namespace) in CheckLiteralOperatorDeclaration()
16103 << FnDecl->getDeclName(); in CheckLiteralOperatorDeclaration()
16107 if (FnDecl->isExternC()) { in CheckLiteralOperatorDeclaration()
16108 Diag(FnDecl->getLocation(), diag::err_literal_operator_extern_c); in CheckLiteralOperatorDeclaration()
16110 FnDecl->getDeclContext()->getExternCContext()) in CheckLiteralOperatorDeclaration()
16116 FunctionTemplateDecl *TpDecl = FnDecl->getDescribedFunctionTemplate(); in CheckLiteralOperatorDeclaration()
16120 TpDecl = FnDecl->getPrimaryTemplate(); in CheckLiteralOperatorDeclaration()
16128 if (FnDecl->param_size() != 0) { in CheckLiteralOperatorDeclaration()
16129 Diag(FnDecl->getLocation(), in CheckLiteralOperatorDeclaration()
16137 } else if (FnDecl->param_size() == 1) { in CheckLiteralOperatorDeclaration()
16138 const ParmVarDecl *Param = FnDecl->getParamDecl(0); in CheckLiteralOperatorDeclaration()
16181 } else if (FnDecl->param_size() == 2) { in CheckLiteralOperatorDeclaration()
16182 FunctionDecl::param_iterator Param = FnDecl->param_begin(); in CheckLiteralOperatorDeclaration()
16236 Diag(FnDecl->getLocation(), diag::err_literal_operator_bad_param_count); in CheckLiteralOperatorDeclaration()
16244 for (auto Param : FnDecl->parameters()) { in CheckLiteralOperatorDeclaration()
16254 = FnDecl->getDeclName().getCXXLiteralIdentifier()->getName(); in CheckLiteralOperatorDeclaration()
16256 !getSourceManager().isInSystemHeader(FnDecl->getLocation())) { in CheckLiteralOperatorDeclaration()
16260 Diag(FnDecl->getLocation(), diag::warn_user_literal_reserved) in CheckLiteralOperatorDeclaration()