================ @@ -11445,11 +11452,16 @@ static void DiagnoseBadDeduction(Sema &S, NamedDecl *Found, Decl *Templated, (ParamD = Param.dyn_cast<TemplateTypeParmDecl*>()) || (ParamD = Param.dyn_cast<NonTypeTemplateParmDecl*>()) || (ParamD = Param.dyn_cast<TemplateTemplateParmDecl*>()); - switch (DeductionFailure.Result) { - case Sema::TDK_Success: - llvm_unreachable("TDK_success while diagnosing bad deduction"); + switch (DeductionFailure.getResult()) { + case TemplateDeductionResult::Success: + llvm_unreachable( + "TemplateDeductionResult::Success while diagnosing bad deduction"); + case TemplateDeductionResult::Invalid: + case TemplateDeductionResult::NonDependentConversionFailure: + case TemplateDeductionResult::AlreadyDiagnosed: + return; ---------------- erichkeane wrote:
Ah, shoot... `Invalid` and `AlreadyDiagnosed` make sense to me to be here. I have no idea on the `NonDependentConversionFailure`, that one MIGHT be worth diagnosing, but I have no idea what such a diagnostic could look like. Could you replace the 'return;' for that one with an assert and run the lit tests to see if it is something that might be valuable doing something with? https://github.com/llvm/llvm-project/pull/81398 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits