summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaOverload.cpp26
-rw-r--r--clang/lib/Sema/SemaTemplateDeduction.cpp7
2 files changed, 3 insertions, 30 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index b5c0e634fa5..1c026d7adb3 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -644,10 +644,6 @@ clang::MakeDeductionFailureInfo(ASTContext &Context,
Result.HasDiagnostic = true;
}
break;
-
- case Sema::TDK_FailedOverloadResolution:
- Result.Data = Info.Expression;
- break;
}
return Result;
@@ -662,7 +658,6 @@ void DeductionFailureInfo::Destroy() {
case Sema::TDK_TooManyArguments:
case Sema::TDK_TooFewArguments:
case Sema::TDK_InvalidExplicitArguments:
- case Sema::TDK_FailedOverloadResolution:
case Sema::TDK_CUDATargetMismatch:
break;
@@ -705,7 +700,6 @@ TemplateParameter DeductionFailureInfo::getTemplateParameter() {
case Sema::TDK_SubstitutionFailure:
case Sema::TDK_DeducedMismatch:
case Sema::TDK_NonDeducedMismatch:
- case Sema::TDK_FailedOverloadResolution:
case Sema::TDK_CUDATargetMismatch:
return TemplateParameter();
@@ -737,7 +731,6 @@ TemplateArgumentList *DeductionFailureInfo::getTemplateArgumentList() {
case Sema::TDK_Inconsistent:
case Sema::TDK_Underqualified:
case Sema::TDK_NonDeducedMismatch:
- case Sema::TDK_FailedOverloadResolution:
case Sema::TDK_CUDATargetMismatch:
return nullptr;
@@ -765,7 +758,6 @@ const TemplateArgument *DeductionFailureInfo::getFirstArg() {
case Sema::TDK_TooFewArguments:
case Sema::TDK_InvalidExplicitArguments:
case Sema::TDK_SubstitutionFailure:
- case Sema::TDK_FailedOverloadResolution:
case Sema::TDK_CUDATargetMismatch:
return nullptr;
@@ -793,7 +785,6 @@ const TemplateArgument *DeductionFailureInfo::getSecondArg() {
case Sema::TDK_TooFewArguments:
case Sema::TDK_InvalidExplicitArguments:
case Sema::TDK_SubstitutionFailure:
- case Sema::TDK_FailedOverloadResolution:
case Sema::TDK_CUDATargetMismatch:
return nullptr;
@@ -811,14 +802,6 @@ const TemplateArgument *DeductionFailureInfo::getSecondArg() {
return nullptr;
}
-Expr *DeductionFailureInfo::getExpr() {
- if (static_cast<Sema::TemplateDeductionResult>(Result) ==
- Sema::TDK_FailedOverloadResolution)
- return static_cast<Expr*>(Data);
-
- return nullptr;
-}
-
llvm::Optional<unsigned> DeductionFailureInfo::getCallArgIndex() {
if (static_cast<Sema::TemplateDeductionResult>(Result) ==
Sema::TDK_DeducedMismatch)
@@ -9699,14 +9682,6 @@ static void DiagnoseBadDeduction(Sema &S, NamedDecl *Found, Decl *Templated,
return;
}
- case Sema::TDK_FailedOverloadResolution: {
- OverloadExpr::FindResult R = OverloadExpr::find(DeductionFailure.getExpr());
- S.Diag(Templated->getLocation(),
- diag::note_ovl_candidate_failed_overload_resolution)
- << R.Expression->getName();
- return;
- }
-
case Sema::TDK_DeducedMismatch: {
// Format the template argument list into the argument string.
SmallString<128> TemplateArgString;
@@ -10043,7 +10018,6 @@ static unsigned RankDeductionFailure(const DeductionFailureInfo &DFI) {
return 3;
case Sema::TDK_InstantiationDepth:
- case Sema::TDK_FailedOverloadResolution:
return 4;
case Sema::TDK_InvalidExplicitArguments:
diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp
index 7f1fd91c46f..c16b28bcf13 100644
--- a/clang/lib/Sema/SemaTemplateDeduction.cpp
+++ b/clang/lib/Sema/SemaTemplateDeduction.cpp
@@ -3279,10 +3279,9 @@ DeduceTemplateArgumentByListElement(Sema &S,
// For all other cases, just match by type.
QualType ArgType = Arg->getType();
if (AdjustFunctionParmAndArgTypesForDeduction(S, TemplateParams, ParamType,
- ArgType, Arg, TDF)) {
- Info.Expression = Arg;
- return Sema::TDK_FailedOverloadResolution;
- }
+ ArgType, Arg, TDF))
+ return Sema::TDK_Success;
+
return DeduceTemplateArgumentsByTypeMatch(S, TemplateParams, ParamType,
ArgType, Info, Deduced, TDF);
}
OpenPOWER on IntegriCloud