Lines Matching refs:Cand
1380 for (OverloadCandidateSet::iterator Cand = Conversions.begin(); in TryUserDefinedConversion() local
1381 Cand != Conversions.end(); ++Cand) in TryUserDefinedConversion()
1382 if (Cand->Best) in TryUserDefinedConversion()
1383 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in TryUserDefinedConversion()
4717 for (OverloadCandidateSet::iterator Cand = CandidateSet.begin(); in FindConversionForRefInit() local
4718 Cand != CandidateSet.end(); ++Cand) in FindConversionForRefInit()
4719 if (Cand->Best) in FindConversionForRefInit()
4720 ICS.Ambiguous.addConversion(Cand->FoundDecl, Cand->Function); in FindConversionForRefInit()
9462 for (OverloadCandidateSet::iterator Cand = CandidateSet.begin(), in AddArgumentDependentLookupCandidates() local
9464 Cand != CandEnd; ++Cand) in AddArgumentDependentLookupCandidates()
9465 if (Cand->Function) { in AddArgumentDependentLookupCandidates()
9466 Fns.erase(Cand->Function); in AddArgumentDependentLookupCandidates()
9467 if (FunctionTemplateDecl *FunTmpl = Cand->Function->getPrimaryTemplate()) in AddArgumentDependentLookupCandidates()
10120 [](OverloadCandidate &Cand) { return &Cand; }); in BestViableFunction() argument
10136 llvm::any_of(Candidates, [&](OverloadCandidate *Cand) { in BestViableFunction() argument
10138 return Cand->Viable && Cand->Function && in BestViableFunction()
10139 S.IdentifyCUDAPreference(Caller, Cand->Function) == in BestViableFunction()
10143 auto IsWrongSideCandidate = [&](OverloadCandidate *Cand) { in BestViableFunction() argument
10145 return Cand->Viable && Cand->Function && in BestViableFunction()
10146 S.IdentifyCUDAPreference(Caller, Cand->Function) == in BestViableFunction()
10155 for (auto *Cand : Candidates) { in BestViableFunction() local
10156 Cand->Best = false; in BestViableFunction()
10157 if (Cand->Viable) in BestViableFunction()
10159 isBetterOverloadCandidate(S, *Cand, *Best, Loc, Kind)) in BestViableFunction()
10160 Best = Cand; in BestViableFunction()
10177 for (auto *Cand : Candidates) { in BestViableFunction() local
10178 if (Cand->Viable && !Cand->Best && in BestViableFunction()
10179 !isBetterOverloadCandidate(S, *Curr, *Cand, Loc, Kind)) { in BestViableFunction()
10180 PendingBest.push_back(Cand); in BestViableFunction()
10181 Cand->Best = true; in BestViableFunction()
10183 if (S.isEquivalentInternalLinkageDeclaration(Cand->Function, in BestViableFunction()
10185 EquivalentCands.push_back(Cand->Function); in BestViableFunction()
10542 static void DiagnoseBadConversion(Sema &S, OverloadCandidate *Cand, in DiagnoseBadConversion() argument
10544 const ImplicitConversionSequence &Conv = Cand->Conversions[I]; in DiagnoseBadConversion()
10546 assert(Cand->Function && "for now, candidate must be a function"); in DiagnoseBadConversion()
10547 FunctionDecl *Fn = Cand->Function; in DiagnoseBadConversion()
10562 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, Cand->getRewriteKind(), in DiagnoseBadConversion()
10580 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10616 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10626 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10636 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10645 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10663 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10674 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10689 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10705 << (unsigned)(Cand->Fix.Kind); in DiagnoseBadConversion()
10707 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10747 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10760 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10766 !checkAddressOfCandidateIsAvailable(S, Cand->Function)) in DiagnoseBadConversion()
10774 << (unsigned)(Cand->Fix.Kind); in DiagnoseBadConversion()
10777 for (std::vector<FixItHint>::iterator HI = Cand->Fix.Hints.begin(), in DiagnoseBadConversion()
10778 HE = Cand->Fix.Hints.end(); HI != HE; ++HI) in DiagnoseBadConversion()
10782 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in DiagnoseBadConversion()
10788 static bool CheckArityMismatch(Sema &S, OverloadCandidate *Cand, in CheckArityMismatch() argument
10790 FunctionDecl *Fn = Cand->Function; in CheckArityMismatch()
10803 assert((Cand->FailureKind == ovl_fail_too_few_arguments) || in CheckArityMismatch()
10804 (Cand->FailureKind == ovl_fail_bad_deduction && in CheckArityMismatch()
10805 Cand->DeductionFailure.Result == Sema::TDK_TooFewArguments)); in CheckArityMismatch()
10807 assert((Cand->FailureKind == ovl_fail_too_many_arguments) || in CheckArityMismatch()
10808 (Cand->FailureKind == ovl_fail_bad_deduction && in CheckArityMismatch()
10809 Cand->DeductionFailure.Result == Sema::TDK_TooManyArguments)); in CheckArityMismatch()
10863 static void DiagnoseArityMismatch(Sema &S, OverloadCandidate *Cand, in DiagnoseArityMismatch() argument
10865 if (!CheckArityMismatch(S, Cand, NumFormalArgs)) in DiagnoseArityMismatch()
10866 DiagnoseArityMismatch(S, Cand->FoundDecl, Cand->Function, NumFormalArgs); in DiagnoseArityMismatch()
11154 static void DiagnoseBadDeduction(Sema &S, OverloadCandidate *Cand, in DiagnoseBadDeduction() argument
11157 unsigned TDK = Cand->DeductionFailure.Result; in DiagnoseBadDeduction()
11159 if (CheckArityMismatch(S, Cand, NumArgs)) in DiagnoseBadDeduction()
11162 DiagnoseBadDeduction(S, Cand->FoundDecl, Cand->Function, // pattern in DiagnoseBadDeduction()
11163 Cand->DeductionFailure, NumArgs, TakingCandidateAddress); in DiagnoseBadDeduction()
11167 static void DiagnoseBadTarget(Sema &S, OverloadCandidate *Cand) { in DiagnoseBadTarget() argument
11169 FunctionDecl *Callee = Cand->Function; in DiagnoseBadTarget()
11176 ClassifyOverloadCandidate(S, Cand->FoundDecl, Callee, in DiagnoseBadTarget()
11177 Cand->getRewriteKind(), FnDesc); in DiagnoseBadTarget()
11225 static void DiagnoseFailedEnableIfAttr(Sema &S, OverloadCandidate *Cand) { in DiagnoseFailedEnableIfAttr() argument
11226 FunctionDecl *Callee = Cand->Function; in DiagnoseFailedEnableIfAttr()
11227 EnableIfAttr *Attr = static_cast<EnableIfAttr*>(Cand->DeductionFailure.Data); in DiagnoseFailedEnableIfAttr()
11234 static void DiagnoseFailedExplicitSpec(Sema &S, OverloadCandidate *Cand) { in DiagnoseFailedExplicitSpec() argument
11235 ExplicitSpecifier ES = ExplicitSpecifier::getFromDecl(Cand->Function); in DiagnoseFailedExplicitSpec()
11239 switch (Cand->Function->getDeclKind()) { in DiagnoseFailedExplicitSpec()
11247 Kind = Cand->Function->isImplicit() ? 0 : 2; in DiagnoseFailedExplicitSpec()
11257 FunctionDecl *First = Cand->Function->getFirstDecl(); in DiagnoseFailedExplicitSpec()
11282 static void NoteFunctionCandidate(Sema &S, OverloadCandidate *Cand, in NoteFunctionCandidate() argument
11286 FunctionDecl *Fn = Cand->Function; in NoteFunctionCandidate()
11294 Cand->FailureKind != ovl_fail_bad_conversion) in NoteFunctionCandidate()
11298 if (Cand->Viable) { in NoteFunctionCandidate()
11302 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, in NoteFunctionCandidate()
11303 Cand->getRewriteKind(), FnDesc); in NoteFunctionCandidate()
11308 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11313 S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
11317 switch (Cand->FailureKind) { in NoteFunctionCandidate()
11320 return DiagnoseArityMismatch(S, Cand, NumArgs); in NoteFunctionCandidate()
11323 return DiagnoseBadDeduction(S, Cand, NumArgs, in NoteFunctionCandidate()
11329 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11339 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11346 return S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
11349 unsigned I = (Cand->IgnoreObjectArgument ? 1 : 0); in NoteFunctionCandidate()
11350 for (unsigned N = Cand->Conversions.size(); I != N; ++I) in NoteFunctionCandidate()
11351 if (Cand->Conversions[I].isBad()) in NoteFunctionCandidate()
11352 return DiagnoseBadConversion(S, Cand, I, TakingCandidateAddress); in NoteFunctionCandidate()
11357 return S.NoteOverloadCandidate(Cand->FoundDecl, Fn, Cand->getRewriteKind()); in NoteFunctionCandidate()
11361 return DiagnoseBadTarget(S, Cand); in NoteFunctionCandidate()
11364 return DiagnoseFailedEnableIfAttr(S, Cand); in NoteFunctionCandidate()
11367 return DiagnoseFailedExplicitSpec(S, Cand); in NoteFunctionCandidate()
11377 MaybeEmitInheritedConstructorNote(S, Cand->FoundDecl); in NoteFunctionCandidate()
11381 bool Available = checkAddressOfCandidateIsAvailable(S, Cand->Function); in NoteFunctionCandidate()
11393 ClassifyOverloadCandidate(S, Cand->FoundDecl, Fn, in NoteFunctionCandidate()
11394 Cand->getRewriteKind(), FnDesc); in NoteFunctionCandidate()
11408 static void NoteSurrogateCandidate(Sema &S, OverloadCandidate *Cand) { in NoteSurrogateCandidate() argument
11409 if (shouldSkipNotingLambdaConversionDecl(Cand->Surrogate)) in NoteSurrogateCandidate()
11415 QualType FnType = Cand->Surrogate->getConversionType(); in NoteSurrogateCandidate()
11439 S.Diag(Cand->Surrogate->getLocation(), diag::note_ovl_surrogate_cand) in NoteSurrogateCandidate()
11445 OverloadCandidate *Cand) { in NoteBuiltinOperatorCandidate() argument
11446 assert(Cand->Conversions.size() <= 2 && "builtin operator is not binary"); in NoteBuiltinOperatorCandidate()
11450 TypeStr += Cand->BuiltinParamTypes[0].getAsString(); in NoteBuiltinOperatorCandidate()
11451 if (Cand->Conversions.size() == 1) { in NoteBuiltinOperatorCandidate()
11456 TypeStr += Cand->BuiltinParamTypes[1].getAsString(); in NoteBuiltinOperatorCandidate()
11463 OverloadCandidate *Cand) { in NoteAmbiguousUserConversions() argument
11464 for (const ImplicitConversionSequence &ICS : Cand->Conversions) { in NoteAmbiguousUserConversions()
11473 static SourceLocation GetLocationForCandidate(const OverloadCandidate *Cand) { in GetLocationForCandidate() argument
11474 if (Cand->Function) in GetLocationForCandidate()
11475 return Cand->Function->getLocation(); in GetLocationForCandidate()
11476 if (Cand->IsSurrogate) in GetLocationForCandidate()
11477 return Cand->Surrogate->getLocation(); in GetLocationForCandidate()
11671 CompleteNonViableCandidate(Sema &S, OverloadCandidate *Cand, in CompleteNonViableCandidate() argument
11674 assert(!Cand->Viable); in CompleteNonViableCandidate()
11677 if (Cand->FailureKind != ovl_fail_bad_conversion) in CompleteNonViableCandidate()
11683 Cand->Fix.setConversionChecker(TryCopyInitialization); in CompleteNonViableCandidate()
11686 unsigned ConvCount = Cand->Conversions.size(); in CompleteNonViableCandidate()
11687 for (unsigned ConvIdx = (Cand->IgnoreObjectArgument ? 1 : 0); /**/; in CompleteNonViableCandidate()
11690 if (Cand->Conversions[ConvIdx].isInitialized() && in CompleteNonViableCandidate()
11691 Cand->Conversions[ConvIdx].isBad()) { in CompleteNonViableCandidate()
11692 Unfixable = !Cand->TryToFixBadConversion(ConvIdx, S); in CompleteNonViableCandidate()
11704 bool Reversed = Cand->isReversed(); in CompleteNonViableCandidate()
11706 if (Cand->IsSurrogate) { in CompleteNonViableCandidate()
11708 = Cand->Surrogate->getConversionType().getNonReferenceType(); in CompleteNonViableCandidate()
11714 } else if (Cand->Function) { in CompleteNonViableCandidate()
11716 Cand->Function->getType()->castAs<FunctionProtoType>()->getParamTypes(); in CompleteNonViableCandidate()
11717 if (isa<CXXMethodDecl>(Cand->Function) && in CompleteNonViableCandidate()
11718 !isa<CXXConstructorDecl>(Cand->Function) && !Reversed) { in CompleteNonViableCandidate()
11722 Cand->Function->getDeclName().getCXXOverloadedOperator() != OO_Call && in CompleteNonViableCandidate()
11723 Cand->Function->getDeclName().getCXXOverloadedOperator() != in CompleteNonViableCandidate()
11731 ParamTypes = Cand->BuiltinParamTypes; in CompleteNonViableCandidate()
11739 if (Cand->Conversions[ConvIdx].isInitialized()) { in CompleteNonViableCandidate()
11743 Cand->Conversions[ConvIdx].setAsIdentityConversion( in CompleteNonViableCandidate()
11746 Cand->Conversions[ConvIdx] = in CompleteNonViableCandidate()
11753 if (!Unfixable && Cand->Conversions[ConvIdx].isBad()) in CompleteNonViableCandidate()
11754 Unfixable = !Cand->TryToFixBadConversion(ConvIdx, S); in CompleteNonViableCandidate()
11757 Cand->Conversions[ConvIdx].setEllipsis(); in CompleteNonViableCandidate()
11769 for (iterator Cand = begin(), LastCand = end(); Cand != LastCand; ++Cand) { in CompleteCandidates() local
11770 if (!Filter(*Cand)) in CompleteCandidates()
11774 if (!Cand->Viable) { in CompleteCandidates()
11775 if (!Cand->Function && !Cand->IsSurrogate) { in CompleteCandidates()
11780 CompleteNonViableCandidate(S, Cand, Args, Kind); in CompleteCandidates()
11785 if (!Cand->Viable) in CompleteCandidates()
11790 if (!Cand->Best) in CompleteCandidates()
11795 Cands.push_back(Cand); in CompleteCandidates()
11811 CompleteCandidates(S, OCD_AllCandidates, Args, OpLoc, [](auto &Cand) { in shouldDeferDiags() argument
11812 return (Cand.Viable == false && in shouldDeferDiags()
11813 Cand.FailureKind == ovl_fail_bad_target) || in shouldDeferDiags()
11814 (Cand.Function && in shouldDeferDiags()
11815 Cand.Function->template hasAttr<CUDAHostAttr>() && in shouldDeferDiags()
11816 Cand.Function->template hasAttr<CUDADeviceAttr>()); in shouldDeferDiags()
11849 OverloadCandidate *Cand = *I; in NoteCandidates() local
11857 if (Cand->Function) in NoteCandidates()
11858 NoteFunctionCandidate(S, Cand, Args.size(), in NoteCandidates()
11860 else if (Cand->IsSurrogate) in NoteCandidates()
11861 NoteSurrogateCandidate(S, Cand); in NoteCandidates()
11863 assert(Cand->Viable && in NoteCandidates()
11872 NoteAmbiguousUserConversions(S, OpLoc, Cand); in NoteCandidates()
11877 NoteBuiltinOperatorCandidate(S, Opc, OpLoc, Cand); in NoteCandidates()
11892 GetLocationForCandidate(const TemplateSpecCandidate *Cand) { in GetLocationForCandidate() argument
11893 return Cand->Specialization ? Cand->Specialization->getLocation() in GetLocationForCandidate()
11961 for (iterator Cand = begin(), LastCand = end(); Cand != LastCand; ++Cand) { in NoteCandidates() local
11962 if (Cand->Specialization) in NoteCandidates()
11963 Cands.push_back(Cand); in NoteCandidates()
11977 TemplateSpecCandidate *Cand = *I; in NoteCandidates() local
11986 assert(Cand->Specialization && in NoteCandidates()
11988 Cand->NoteDeductionFailure(S, ForTakingAddress); in NoteCandidates()
13785 for (OverloadCandidate &Cand : CandidateSet) { in CreateOverloadedBinOp()
13786 if (Cand.Viable && Cand.Function && Cand.isReversed() && in CreateOverloadedBinOp()
13787 haveSameParameterTypes(Context, Cand.Function, FnDecl, 2)) { in CreateOverloadedBinOp()
13790 *this, OpLoc, Cand.Conversions[ArgIdx], in CreateOverloadedBinOp()
13793 AmbiguousWith.push_back(Cand.Function); in CreateOverloadedBinOp()