Lines Matching refs:Cand

1647     for (OverloadCandidateSet::iterator Cand = Conversions.begin();  in TryUserDefinedConversion()  local
1648 Cand != Conversions.end(); ++Cand) in TryUserDefinedConversion()
1649 if (Cand->Best) in TryUserDefinedConversion()
1650 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
5010 for (OverloadCandidateSet::iterator Cand = CandidateSet.begin(); in FindConversionForRefInit() local
5011 Cand != CandidateSet.end(); ++Cand) in FindConversionForRefInit()
5012 if (Cand->Best) in FindConversionForRefInit()
5013 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
9976 for (OverloadCandidateSet::iterator Cand = CandidateSet.begin(), in AddArgumentDependentLookupCandidates() local
9978 Cand != CandEnd; ++Cand) in AddArgumentDependentLookupCandidates()
9979 if (Cand->Function) { in AddArgumentDependentLookupCandidates()
9980 Fns.erase(Cand->Function); in AddArgumentDependentLookupCandidates()
9981 if (FunctionTemplateDecl *FunTmpl = Cand->Function->getPrimaryTemplate()) in AddArgumentDependentLookupCandidates()
10680 [](OverloadCandidate &Cand) { return &Cand; }); in BestViableFunction() argument
10696 llvm::any_of(Candidates, [&](OverloadCandidate *Cand) { in BestViableFunction() argument
10698 return Cand->Viable && Cand->Function && in BestViableFunction()
10699 S.CUDA().IdentifyPreference(Caller, Cand->Function) == in BestViableFunction()
10703 auto IsWrongSideCandidate = [&](OverloadCandidate *Cand) { in BestViableFunction() argument
10705 return Cand->Viable && Cand->Function && in BestViableFunction()
10706 S.CUDA().IdentifyPreference(Caller, Cand->Function) == in BestViableFunction()
10715 for (auto *Cand : Candidates) { in BestViableFunction() local
10716 Cand->Best = false; in BestViableFunction()
10717 if (Cand->Viable) { in BestViableFunction()
10719 isBetterOverloadCandidate(S, *Cand, *Best, Loc, Kind)) in BestViableFunction()
10720 Best = Cand; in BestViableFunction()
10721 } else if (Cand->NotValidBecauseConstraintExprHasError()) { in BestViableFunction()
10745 for (auto *Cand : Candidates) { in BestViableFunction() local
10746 if (Cand->Viable && !Cand->Best && in BestViableFunction()
10747 !isBetterOverloadCandidate(S, *Curr, *Cand, Loc, Kind)) { in BestViableFunction()
10748 PendingBest.push_back(Cand); in BestViableFunction()
10749 Cand->Best = true; in BestViableFunction()
10751 if (S.isEquivalentInternalLinkageDeclaration(Cand->Function, in BestViableFunction()
10753 EquivalentCands.push_back(Cand->Function); in BestViableFunction()
11120 static void DiagnoseBadConversion(Sema &S, OverloadCandidate *Cand, in DiagnoseBadConversion() argument
11122 const ImplicitConversionSequence &Conv = Cand->Conversions[I]; in DiagnoseBadConversion()
11124 assert(Cand->Function && "for now, candidate must be a function"); in DiagnoseBadConversion()
11125 FunctionDecl *Fn = Cand->Function; in DiagnoseBadConversion()
11140 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, Cand->getRewriteKind(), in DiagnoseBadConversion()
11167 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11201 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11210 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11219 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11235 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11246 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11260 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11275 << (unsigned)(Cand->Fix.Kind); in DiagnoseBadConversion()
11277 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11317 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11330 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11336 !checkAddressOfCandidateIsAvailable(S, Cand->Function)) in DiagnoseBadConversion()
11343 << (unsigned)(Cand->Fix.Kind); in DiagnoseBadConversion()
11348 for (const FixItHint &HI : Cand->Fix.Hints) in DiagnoseBadConversion()
11354 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
11360 static bool CheckArityMismatch(Sema &S, OverloadCandidate *Cand, in CheckArityMismatch() argument
11362 FunctionDecl *Fn = Cand->Function; in CheckArityMismatch()
11376 assert((Cand->FailureKind == ovl_fail_too_few_arguments) || in CheckArityMismatch()
11377 (Cand->FailureKind == ovl_fail_bad_deduction && in CheckArityMismatch()
11378 Cand->DeductionFailure.getResult() == in CheckArityMismatch()
11381 assert((Cand->FailureKind == ovl_fail_too_many_arguments) || in CheckArityMismatch()
11382 (Cand->FailureKind == ovl_fail_bad_deduction && in CheckArityMismatch()
11383 Cand->DeductionFailure.getResult() == in CheckArityMismatch()
11450 static void DiagnoseArityMismatch(Sema &S, OverloadCandidate *Cand, in DiagnoseArityMismatch() argument
11452 if (!CheckArityMismatch(S, Cand, NumFormalArgs, Cand->TookAddressOfOverload)) in DiagnoseArityMismatch()
11453 DiagnoseArityMismatch(S, Cand->FoundDecl, Cand->Function, NumFormalArgs, in DiagnoseArityMismatch()
11454 Cand->TookAddressOfOverload); in DiagnoseArityMismatch()
11750 static void DiagnoseBadDeduction(Sema &S, OverloadCandidate *Cand, in DiagnoseBadDeduction() argument
11753 TemplateDeductionResult TDK = Cand->DeductionFailure.getResult(); in DiagnoseBadDeduction()
11756 if (CheckArityMismatch(S, Cand, NumArgs)) in DiagnoseBadDeduction()
11759 DiagnoseBadDeduction(S, Cand->FoundDecl, Cand->Function, // pattern in DiagnoseBadDeduction()
11760 Cand->DeductionFailure, NumArgs, TakingCandidateAddress); in DiagnoseBadDeduction()
11764 static void DiagnoseBadTarget(Sema &S, OverloadCandidate *Cand) { in DiagnoseBadTarget() argument
11766 FunctionDecl *Callee = Cand->Function; in DiagnoseBadTarget()
11773 ClassifyOverloadCandidate(S, Cand->FoundDecl, Callee, in DiagnoseBadTarget()
11774 Cand->getRewriteKind(), FnDesc); in DiagnoseBadTarget()
11822 static void DiagnoseFailedEnableIfAttr(Sema &S, OverloadCandidate *Cand) { in DiagnoseFailedEnableIfAttr() argument
11823 FunctionDecl *Callee = Cand->Function; in DiagnoseFailedEnableIfAttr()
11824 EnableIfAttr *Attr = static_cast<EnableIfAttr*>(Cand->DeductionFailure.Data); in DiagnoseFailedEnableIfAttr()
11831 static void DiagnoseFailedExplicitSpec(Sema &S, OverloadCandidate *Cand) { in DiagnoseFailedExplicitSpec() argument
11832 ExplicitSpecifier ES = ExplicitSpecifier::getFromDecl(Cand->Function); in DiagnoseFailedExplicitSpec()
11836 switch (Cand->Function->getDeclKind()) { in DiagnoseFailedExplicitSpec()
11844 Kind = Cand->Function->isImplicit() ? 0 : 2; in DiagnoseFailedExplicitSpec()
11854 FunctionDecl *First = Cand->Function->getFirstDecl(); in DiagnoseFailedExplicitSpec()
11919 static void NoteFunctionCandidate(Sema &S, OverloadCandidate *Cand, in NoteFunctionCandidate() argument
11923 FunctionDecl *Fn = Cand->Function; in NoteFunctionCandidate()
11931 Cand->FailureKind != ovl_fail_bad_conversion) in NoteFunctionCandidate()
11936 if (Cand->TookAddressOfOverload && in NoteFunctionCandidate()
11937 !Cand->Function->hasCXXExplicitFunctionObjectParameter() && in NoteFunctionCandidate()
11938 !Cand->Function->isStatic()) in NoteFunctionCandidate()
11942 if (Cand->Viable) { in NoteFunctionCandidate()
11946 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, in NoteFunctionCandidate()
11947 Cand->getRewriteKind(), FnDesc); in NoteFunctionCandidate()
11952 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11957 S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
11972 switch (Cand->FailureKind) { in NoteFunctionCandidate()
11975 return DiagnoseArityMismatch(S, Cand, NumArgs); in NoteFunctionCandidate()
11978 return DiagnoseBadDeduction(S, Cand, NumArgs, in NoteFunctionCandidate()
11984 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11994 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
12001 return S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
12004 unsigned I = (Cand->IgnoreObjectArgument ? 1 : 0); in NoteFunctionCandidate()
12005 for (unsigned N = Cand->Conversions.size(); I != N; ++I) in NoteFunctionCandidate()
12006 if (Cand->Conversions[I].isInitialized() && Cand->Conversions[I].isBad()) in NoteFunctionCandidate()
12007 return DiagnoseBadConversion(S, Cand, I, TakingCandidateAddress); in NoteFunctionCandidate()
12012 return S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
12016 return DiagnoseBadTarget(S, Cand); in NoteFunctionCandidate()
12019 return DiagnoseFailedEnableIfAttr(S, Cand); in NoteFunctionCandidate()
12022 return DiagnoseFailedExplicitSpec(S, Cand); in NoteFunctionCandidate()
12032 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
12036 bool Available = checkAddressOfCandidateIsAvailable(S, Cand->Function); in NoteFunctionCandidate()
12048 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, in NoteFunctionCandidate()
12049 Cand->getRewriteKind(), FnDesc); in NoteFunctionCandidate()
12063 static void NoteSurrogateCandidate(Sema &S, OverloadCandidate *Cand) { in NoteSurrogateCandidate() argument
12064 if (shouldSkipNotingLambdaConversionDecl(Cand->Surrogate)) in NoteSurrogateCandidate()
12070 QualType FnType = Cand->Surrogate->getConversionType(); in NoteSurrogateCandidate()
12094 if (!Cand->Viable && in NoteSurrogateCandidate()
12095 Cand->FailureKind == ovl_fail_constraints_not_satisfied) { in NoteSurrogateCandidate()
12096 S.Diag(Cand->Surrogate->getLocation(), in NoteSurrogateCandidate()
12098 << Cand->Surrogate; in NoteSurrogateCandidate()
12100 if (S.CheckFunctionConstraints(Cand->Surrogate, Satisfaction)) in NoteSurrogateCandidate()
12103 S.Diag(Cand->Surrogate->getLocation(), diag::note_ovl_surrogate_cand) in NoteSurrogateCandidate()
12110 OverloadCandidate *Cand) { in NoteBuiltinOperatorCandidate() argument
12111 assert(Cand->Conversions.size() <= 2 && "builtin operator is not binary"); in NoteBuiltinOperatorCandidate()
12115 TypeStr += Cand->BuiltinParamTypes[0].getAsString(); in NoteBuiltinOperatorCandidate()
12116 if (Cand->Conversions.size() == 1) { in NoteBuiltinOperatorCandidate()
12121 TypeStr += Cand->BuiltinParamTypes[1].getAsString(); in NoteBuiltinOperatorCandidate()
12128 OverloadCandidate *Cand) { in NoteAmbiguousUserConversions() argument
12129 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions()
12138 static SourceLocation GetLocationForCandidate(const OverloadCandidate *Cand) { in GetLocationForCandidate() argument
12139 if (Cand->Function) in GetLocationForCandidate()
12140 return Cand->Function->getLocation(); in GetLocationForCandidate()
12141 if (Cand->IsSurrogate) in GetLocationForCandidate()
12142 return Cand->Surrogate->getLocation(); in GetLocationForCandidate()
12371 CompleteNonViableCandidate(Sema &S, OverloadCandidate *Cand, in CompleteNonViableCandidate() argument
12374 assert(!Cand->Viable); in CompleteNonViableCandidate()
12377 if (Cand->FailureKind != ovl_fail_bad_conversion) in CompleteNonViableCandidate()
12383 Cand->Fix.setConversionChecker(TryCopyInitialization); in CompleteNonViableCandidate()
12386 unsigned ConvCount = Cand->Conversions.size(); in CompleteNonViableCandidate()
12387 for (unsigned ConvIdx = (Cand->IgnoreObjectArgument ? 1 : 0); /**/; in CompleteNonViableCandidate()
12390 if (Cand->Conversions[ConvIdx].isInitialized() && in CompleteNonViableCandidate()
12391 Cand->Conversions[ConvIdx].isBad()) { in CompleteNonViableCandidate()
12392 Unfixable = !Cand->TryToFixBadConversion(ConvIdx, S); in CompleteNonViableCandidate()
12404 bool Reversed = Cand->isReversed(); in CompleteNonViableCandidate()
12406 if (Cand->IsSurrogate) { in CompleteNonViableCandidate()
12408 = Cand->Surrogate->getConversionType().getNonReferenceType(); in CompleteNonViableCandidate()
12414 } else if (Cand->Function) { in CompleteNonViableCandidate()
12416 Cand->Function->getType()->castAs<FunctionProtoType>()->getParamTypes(); in CompleteNonViableCandidate()
12417 if (isa<CXXMethodDecl>(Cand->Function) && in CompleteNonViableCandidate()
12418 !isa<CXXConstructorDecl>(Cand->Function) && !Reversed) { in CompleteNonViableCandidate()
12422 Cand->Function->getDeclName().getCXXOverloadedOperator() != OO_Call && in CompleteNonViableCandidate()
12423 Cand->Function->getDeclName().getCXXOverloadedOperator() != in CompleteNonViableCandidate()
12431 ParamTypes = Cand->BuiltinParamTypes; in CompleteNonViableCandidate()
12439 if (Cand->Conversions[ConvIdx].isInitialized()) { in CompleteNonViableCandidate()
12443 Cand->Conversions[ConvIdx].setAsIdentityConversion( in CompleteNonViableCandidate()
12446 Cand->Conversions[ConvIdx] = in CompleteNonViableCandidate()
12453 if (!Unfixable && Cand->Conversions[ConvIdx].isBad()) in CompleteNonViableCandidate()
12454 Unfixable = !Cand->TryToFixBadConversion(ConvIdx, S); in CompleteNonViableCandidate()
12457 Cand->Conversions[ConvIdx].setEllipsis(); in CompleteNonViableCandidate()
12469 for (iterator Cand = begin(), LastCand = end(); Cand != LastCand; ++Cand) { in CompleteCandidates() local
12470 if (!Filter(*Cand)) in CompleteCandidates()
12474 if (!Cand->Viable) { in CompleteCandidates()
12475 if (!Cand->Function && !Cand->IsSurrogate) { in CompleteCandidates()
12480 CompleteNonViableCandidate(S, Cand, Args, Kind); in CompleteCandidates()
12485 if (!Cand->Viable) in CompleteCandidates()
12490 if (!Cand->Best) in CompleteCandidates()
12495 Cands.push_back(Cand); in CompleteCandidates()
12511 CompleteCandidates(S, OCD_AllCandidates, Args, OpLoc, [](auto &Cand) { in shouldDeferDiags() argument
12512 return (Cand.Viable == false && in shouldDeferDiags()
12513 Cand.FailureKind == ovl_fail_bad_target) || in shouldDeferDiags()
12514 (Cand.Function && in shouldDeferDiags()
12515 Cand.Function->template hasAttr<CUDAHostAttr>() && in shouldDeferDiags()
12516 Cand.Function->template hasAttr<CUDADeviceAttr>()); in shouldDeferDiags()
12558 OverloadCandidate *Cand = *I; in NoteCandidates() local
12566 if (Cand->Function) in NoteCandidates()
12567 NoteFunctionCandidate(S, Cand, Args.size(), in NoteCandidates()
12569 else if (Cand->IsSurrogate) in NoteCandidates()
12570 NoteSurrogateCandidate(S, Cand); in NoteCandidates()
12572 assert(Cand->Viable && in NoteCandidates()
12581 NoteAmbiguousUserConversions(S, OpLoc, Cand); in NoteCandidates()
12586 NoteBuiltinOperatorCandidate(S, Opc, OpLoc, Cand); in NoteCandidates()
12601 GetLocationForCandidate(const TemplateSpecCandidate *Cand) { in GetLocationForCandidate() argument
12602 return Cand->Specialization ? Cand->Specialization->getLocation() in GetLocationForCandidate()
12670 for (iterator Cand = begin(), LastCand = end(); Cand != LastCand; ++Cand) { in NoteCandidates() local
12671 if (Cand->Specialization) in NoteCandidates()
12672 Cands.push_back(Cand); in NoteCandidates()
12686 TemplateSpecCandidate *Cand = *I; in NoteCandidates() local
12695 assert(Cand->Specialization && in NoteCandidates()
12697 Cand->NoteDeductionFailure(S, ForTakingAddress); in NoteCandidates()
14562 for (OverloadCandidate &Cand : CandidateSet) { in CreateOverloadedBinOp()
14563 if (Cand.Viable && Cand.Function && Cand.isReversed() && in CreateOverloadedBinOp()
14564 allowAmbiguity(Context, Cand.Function, FnDecl)) { in CreateOverloadedBinOp()
14567 *this, OpLoc, Cand.Conversions[ArgIdx], in CreateOverloadedBinOp()
14570 AmbiguousWith.push_back(Cand.Function); in CreateOverloadedBinOp()