[clang] [clang][NFC] Refactor `Sema::TemplateDeductionResult` (PR #81398)

Vlad Serebrennikov via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 12 07:23:49 PST 2024


================
@@ -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;
----------------
Endilll wrote:

> 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?

No crashes in Clang test suite, so I pushed the change.

https://github.com/llvm/llvm-project/pull/81398


More information about the cfe-commits mailing list