Lines Matching refs:Cand
1597 for (OverloadCandidateSet::iterator Cand = Conversions.begin(); in TryUserDefinedConversion() local
1598 Cand != Conversions.end(); ++Cand) in TryUserDefinedConversion()
1599 if (Cand->Best) in TryUserDefinedConversion()
1600 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
4983 for (OverloadCandidateSet::iterator Cand = CandidateSet.begin(); in FindConversionForRefInit() local
4984 Cand != CandidateSet.end(); ++Cand) in FindConversionForRefInit()
4985 if (Cand->Best) in FindConversionForRefInit()
4986 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
9961 for (OverloadCandidateSet::iterator Cand = CandidateSet.begin(), in AddArgumentDependentLookupCandidates() local
9963 Cand != CandEnd; ++Cand) in AddArgumentDependentLookupCandidates()
9964 if (Cand->Function) { in AddArgumentDependentLookupCandidates()
9965 Fns.erase(Cand->Function); in AddArgumentDependentLookupCandidates()
9966 if (FunctionTemplateDecl *FunTmpl = Cand->Function->getPrimaryTemplate()) in AddArgumentDependentLookupCandidates()
10674 [](OverloadCandidate &Cand) { return &Cand; }); in BestViableFunction() argument
10690 llvm::any_of(Candidates, [&](OverloadCandidate *Cand) { in BestViableFunction() argument
10692 return Cand->Viable && Cand->Function && in BestViableFunction()
10693 S.IdentifyCUDAPreference(Caller, Cand->Function) == in BestViableFunction()
10697 auto IsWrongSideCandidate = [&](OverloadCandidate *Cand) { in BestViableFunction() argument
10699 return Cand->Viable && Cand->Function && in BestViableFunction()
10700 S.IdentifyCUDAPreference(Caller, Cand->Function) == in BestViableFunction()
10709 for (auto *Cand : Candidates) { in BestViableFunction() local
10710 Cand->Best = false; in BestViableFunction()
10711 if (Cand->Viable) { in BestViableFunction()
10713 isBetterOverloadCandidate(S, *Cand, *Best, Loc, Kind)) in BestViableFunction()
10714 Best = Cand; in BestViableFunction()
10715 } else if (Cand->NotValidBecauseConstraintExprHasError()) { in BestViableFunction()
10739 for (auto *Cand : Candidates) { in BestViableFunction() local
10740 if (Cand->Viable && !Cand->Best && in BestViableFunction()
10741 !isBetterOverloadCandidate(S, *Curr, *Cand, Loc, Kind)) { in BestViableFunction()
10742 PendingBest.push_back(Cand); in BestViableFunction()
10743 Cand->Best = true; in BestViableFunction()
10745 if (S.isEquivalentInternalLinkageDeclaration(Cand->Function, in BestViableFunction()
10747 EquivalentCands.push_back(Cand->Function); in BestViableFunction()
11108 static void DiagnoseBadConversion(Sema &S, OverloadCandidate *Cand, in DiagnoseBadConversion() argument
11110 const ImplicitConversionSequence &Conv = Cand->Conversions[I]; in DiagnoseBadConversion()
11112 assert(Cand->Function && "for now, candidate must be a function"); in DiagnoseBadConversion()
11113 FunctionDecl *Fn = Cand->Function; in DiagnoseBadConversion()
11128 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, Cand->getRewriteKind(), in DiagnoseBadConversion()
11147 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11181 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11190 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11199 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11215 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11226 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11240 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11255 << (unsigned)(Cand->Fix.Kind); in DiagnoseBadConversion()
11257 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11297 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11310 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11316 !checkAddressOfCandidateIsAvailable(S, Cand->Function)) in DiagnoseBadConversion()
11323 << (unsigned)(Cand->Fix.Kind); in DiagnoseBadConversion()
11328 for (const FixItHint &HI : Cand->Fix.Hints) in DiagnoseBadConversion()
11334 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11340 static bool CheckArityMismatch(Sema &S, OverloadCandidate *Cand, in CheckArityMismatch() argument
11342 FunctionDecl *Fn = Cand->Function; in CheckArityMismatch()
11355 assert((Cand->FailureKind == ovl_fail_too_few_arguments) || in CheckArityMismatch()
11356 (Cand->FailureKind == ovl_fail_bad_deduction && in CheckArityMismatch()
11357 Cand->DeductionFailure.Result == Sema::TDK_TooFewArguments)); in CheckArityMismatch()
11359 assert((Cand->FailureKind == ovl_fail_too_many_arguments) || in CheckArityMismatch()
11360 (Cand->FailureKind == ovl_fail_bad_deduction && in CheckArityMismatch()
11361 Cand->DeductionFailure.Result == Sema::TDK_TooManyArguments)); in CheckArityMismatch()
11421 static void DiagnoseArityMismatch(Sema &S, OverloadCandidate *Cand, in DiagnoseArityMismatch() argument
11423 if (!CheckArityMismatch(S, Cand, NumFormalArgs)) in DiagnoseArityMismatch()
11424 DiagnoseArityMismatch(S, Cand->FoundDecl, Cand->Function, NumFormalArgs); in DiagnoseArityMismatch()
11712 static void DiagnoseBadDeduction(Sema &S, OverloadCandidate *Cand, in DiagnoseBadDeduction() argument
11715 unsigned TDK = Cand->DeductionFailure.Result; in DiagnoseBadDeduction()
11717 if (CheckArityMismatch(S, Cand, NumArgs)) in DiagnoseBadDeduction()
11720 DiagnoseBadDeduction(S, Cand->FoundDecl, Cand->Function, // pattern in DiagnoseBadDeduction()
11721 Cand->DeductionFailure, NumArgs, TakingCandidateAddress); in DiagnoseBadDeduction()
11725 static void DiagnoseBadTarget(Sema &S, OverloadCandidate *Cand) { in DiagnoseBadTarget() argument
11727 FunctionDecl *Callee = Cand->Function; in DiagnoseBadTarget()
11734 ClassifyOverloadCandidate(S, Cand->FoundDecl, Callee, in DiagnoseBadTarget()
11735 Cand->getRewriteKind(), FnDesc); in DiagnoseBadTarget()
11783 static void DiagnoseFailedEnableIfAttr(Sema &S, OverloadCandidate *Cand) { in DiagnoseFailedEnableIfAttr() argument
11784 FunctionDecl *Callee = Cand->Function; in DiagnoseFailedEnableIfAttr()
11785 EnableIfAttr *Attr = static_cast<EnableIfAttr*>(Cand->DeductionFailure.Data); in DiagnoseFailedEnableIfAttr()
11792 static void DiagnoseFailedExplicitSpec(Sema &S, OverloadCandidate *Cand) { in DiagnoseFailedExplicitSpec() argument
11793 ExplicitSpecifier ES = ExplicitSpecifier::getFromDecl(Cand->Function); in DiagnoseFailedExplicitSpec()
11797 switch (Cand->Function->getDeclKind()) { in DiagnoseFailedExplicitSpec()
11805 Kind = Cand->Function->isImplicit() ? 0 : 2; in DiagnoseFailedExplicitSpec()
11815 FunctionDecl *First = Cand->Function->getFirstDecl(); in DiagnoseFailedExplicitSpec()
11840 static void NoteFunctionCandidate(Sema &S, OverloadCandidate *Cand, in NoteFunctionCandidate() argument
11844 FunctionDecl *Fn = Cand->Function; in NoteFunctionCandidate()
11852 Cand->FailureKind != ovl_fail_bad_conversion) in NoteFunctionCandidate()
11856 if (Cand->Viable) { in NoteFunctionCandidate()
11860 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, in NoteFunctionCandidate()
11861 Cand->getRewriteKind(), FnDesc); in NoteFunctionCandidate()
11866 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11871 S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
11875 switch (Cand->FailureKind) { in NoteFunctionCandidate()
11878 return DiagnoseArityMismatch(S, Cand, NumArgs); in NoteFunctionCandidate()
11881 return DiagnoseBadDeduction(S, Cand, NumArgs, in NoteFunctionCandidate()
11887 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11897 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11904 return S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
11907 unsigned I = (Cand->IgnoreObjectArgument ? 1 : 0); in NoteFunctionCandidate()
11908 for (unsigned N = Cand->Conversions.size(); I != N; ++I) in NoteFunctionCandidate()
11909 if (Cand->Conversions[I].isBad()) in NoteFunctionCandidate()
11910 return DiagnoseBadConversion(S, Cand, I, TakingCandidateAddress); in NoteFunctionCandidate()
11915 return S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
11919 return DiagnoseBadTarget(S, Cand); in NoteFunctionCandidate()
11922 return DiagnoseFailedEnableIfAttr(S, Cand); in NoteFunctionCandidate()
11925 return DiagnoseFailedExplicitSpec(S, Cand); in NoteFunctionCandidate()
11935 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11939 bool Available = checkAddressOfCandidateIsAvailable(S, Cand->Function); in NoteFunctionCandidate()
11951 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, in NoteFunctionCandidate()
11952 Cand->getRewriteKind(), FnDesc); in NoteFunctionCandidate()
11966 static void NoteSurrogateCandidate(Sema &S, OverloadCandidate *Cand) { in NoteSurrogateCandidate() argument
11967 if (shouldSkipNotingLambdaConversionDecl(Cand->Surrogate)) in NoteSurrogateCandidate()
11973 QualType FnType = Cand->Surrogate->getConversionType(); in NoteSurrogateCandidate()
11997 if (!Cand->Viable && in NoteSurrogateCandidate()
11998 Cand->FailureKind == ovl_fail_constraints_not_satisfied) { in NoteSurrogateCandidate()
11999 S.Diag(Cand->Surrogate->getLocation(), in NoteSurrogateCandidate()
12001 << Cand->Surrogate; in NoteSurrogateCandidate()
12003 if (S.CheckFunctionConstraints(Cand->Surrogate, Satisfaction)) in NoteSurrogateCandidate()
12006 S.Diag(Cand->Surrogate->getLocation(), diag::note_ovl_surrogate_cand) in NoteSurrogateCandidate()
12013 OverloadCandidate *Cand) { in NoteBuiltinOperatorCandidate() argument
12014 assert(Cand->Conversions.size() <= 2 && "builtin operator is not binary"); in NoteBuiltinOperatorCandidate()
12018 TypeStr += Cand->BuiltinParamTypes[0].getAsString(); in NoteBuiltinOperatorCandidate()
12019 if (Cand->Conversions.size() == 1) { in NoteBuiltinOperatorCandidate()
12024 TypeStr += Cand->BuiltinParamTypes[1].getAsString(); in NoteBuiltinOperatorCandidate()
12031 OverloadCandidate *Cand) { in NoteAmbiguousUserConversions() argument
12032 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions()
12041 static SourceLocation GetLocationForCandidate(const OverloadCandidate *Cand) { in GetLocationForCandidate() argument
12042 if (Cand->Function) in GetLocationForCandidate()
12043 return Cand->Function->getLocation(); in GetLocationForCandidate()
12044 if (Cand->IsSurrogate) in GetLocationForCandidate()
12045 return Cand->Surrogate->getLocation(); in GetLocationForCandidate()
12274 CompleteNonViableCandidate(Sema &S, OverloadCandidate *Cand, in CompleteNonViableCandidate() argument
12277 assert(!Cand->Viable); in CompleteNonViableCandidate()
12280 if (Cand->FailureKind != ovl_fail_bad_conversion) in CompleteNonViableCandidate()
12286 Cand->Fix.setConversionChecker(TryCopyInitialization); in CompleteNonViableCandidate()
12289 unsigned ConvCount = Cand->Conversions.size(); in CompleteNonViableCandidate()
12290 for (unsigned ConvIdx = (Cand->IgnoreObjectArgument ? 1 : 0); /**/; in CompleteNonViableCandidate()
12293 if (Cand->Conversions[ConvIdx].isInitialized() && in CompleteNonViableCandidate()
12294 Cand->Conversions[ConvIdx].isBad()) { in CompleteNonViableCandidate()
12295 Unfixable = !Cand->TryToFixBadConversion(ConvIdx, S); in CompleteNonViableCandidate()
12307 bool Reversed = Cand->isReversed(); in CompleteNonViableCandidate()
12309 if (Cand->IsSurrogate) { in CompleteNonViableCandidate()
12311 = Cand->Surrogate->getConversionType().getNonReferenceType(); in CompleteNonViableCandidate()
12317 } else if (Cand->Function) { in CompleteNonViableCandidate()
12319 Cand->Function->getType()->castAs<FunctionProtoType>()->getParamTypes(); in CompleteNonViableCandidate()
12320 if (isa<CXXMethodDecl>(Cand->Function) && in CompleteNonViableCandidate()
12321 !isa<CXXConstructorDecl>(Cand->Function) && !Reversed) { in CompleteNonViableCandidate()
12325 Cand->Function->getDeclName().getCXXOverloadedOperator() != OO_Call && in CompleteNonViableCandidate()
12326 Cand->Function->getDeclName().getCXXOverloadedOperator() != in CompleteNonViableCandidate()
12334 ParamTypes = Cand->BuiltinParamTypes; in CompleteNonViableCandidate()
12342 if (Cand->Conversions[ConvIdx].isInitialized()) { in CompleteNonViableCandidate()
12346 Cand->Conversions[ConvIdx].setAsIdentityConversion( in CompleteNonViableCandidate()
12349 Cand->Conversions[ConvIdx] = in CompleteNonViableCandidate()
12356 if (!Unfixable && Cand->Conversions[ConvIdx].isBad()) in CompleteNonViableCandidate()
12357 Unfixable = !Cand->TryToFixBadConversion(ConvIdx, S); in CompleteNonViableCandidate()
12360 Cand->Conversions[ConvIdx].setEllipsis(); in CompleteNonViableCandidate()
12372 for (iterator Cand = begin(), LastCand = end(); Cand != LastCand; ++Cand) { in CompleteCandidates() local
12373 if (!Filter(*Cand)) in CompleteCandidates()
12377 if (!Cand->Viable) { in CompleteCandidates()
12378 if (!Cand->Function && !Cand->IsSurrogate) { in CompleteCandidates()
12383 CompleteNonViableCandidate(S, Cand, Args, Kind); in CompleteCandidates()
12388 if (!Cand->Viable) in CompleteCandidates()
12393 if (!Cand->Best) in CompleteCandidates()
12398 Cands.push_back(Cand); in CompleteCandidates()
12414 CompleteCandidates(S, OCD_AllCandidates, Args, OpLoc, [](auto &Cand) { in shouldDeferDiags() argument
12415 return (Cand.Viable == false && in shouldDeferDiags()
12416 Cand.FailureKind == ovl_fail_bad_target) || in shouldDeferDiags()
12417 (Cand.Function && in shouldDeferDiags()
12418 Cand.Function->template hasAttr<CUDAHostAttr>() && in shouldDeferDiags()
12419 Cand.Function->template hasAttr<CUDADeviceAttr>()); in shouldDeferDiags()
12461 OverloadCandidate *Cand = *I; in NoteCandidates() local
12469 if (Cand->Function) in NoteCandidates()
12470 NoteFunctionCandidate(S, Cand, Args.size(), in NoteCandidates()
12472 else if (Cand->IsSurrogate) in NoteCandidates()
12473 NoteSurrogateCandidate(S, Cand); in NoteCandidates()
12475 assert(Cand->Viable && in NoteCandidates()
12484 NoteAmbiguousUserConversions(S, OpLoc, Cand); in NoteCandidates()
12489 NoteBuiltinOperatorCandidate(S, Opc, OpLoc, Cand); in NoteCandidates()
12504 GetLocationForCandidate(const TemplateSpecCandidate *Cand) { in GetLocationForCandidate() argument
12505 return Cand->Specialization ? Cand->Specialization->getLocation() in GetLocationForCandidate()
12573 for (iterator Cand = begin(), LastCand = end(); Cand != LastCand; ++Cand) { in NoteCandidates() local
12574 if (Cand->Specialization) in NoteCandidates()
12575 Cands.push_back(Cand); in NoteCandidates()
12589 TemplateSpecCandidate *Cand = *I; in NoteCandidates() local
12598 assert(Cand->Specialization && in NoteCandidates()
12600 Cand->NoteDeductionFailure(S, ForTakingAddress); in NoteCandidates()
14565 for (OverloadCandidate &Cand : CandidateSet) { in CreateOverloadedBinOp()
14566 if (Cand.Viable && Cand.Function && Cand.isReversed() && in CreateOverloadedBinOp()
14567 allowAmbiguity(Context, Cand.Function, FnDecl)) { in CreateOverloadedBinOp()
14570 *this, OpLoc, Cand.Conversions[ArgIdx], in CreateOverloadedBinOp()
14573 AmbiguousWith.push_back(Cand.Function); in CreateOverloadedBinOp()