================
@@ -11758,6 +11795,40 @@ static void DiagnoseBadDeduction(Sema &S, NamedDecl 
*Found, Decl *Templated,
       return;
     }
 
+    // Errors in deduction guides from inherited constructors
+    // will present as substitution failures in the mapping
+    // partial specialization, so we show a generic diagnostic
+    // in this case.
+    if (auto *DG = dyn_cast<CXXDeductionGuideDecl>(Templated);
+        DG && DG->getSourceKind() ==
+                  CXXDeductionGuideDecl::SourceKind::InheritedConstructor) {
+      CXXDeductionGuideDecl *Source = DG->getSourceDeductionGuide();
+      assert(Source &&
+             "Inherited constructor deduction guides must have a source");
+      QualType DeducedRecordType(
+          cast<ClassTemplateDecl>(DG->getDeducedTemplate())
+              ->getTemplatedDecl()
+              ->getTypeForDecl(),
+          0);
+      QualType InheritedRecordType(
+          cast<ClassTemplateDecl>(Source->getDeducedTemplate())
+              ->getTemplatedDecl()
+              ->getTypeForDecl(),
+          0);
----------------
antangelo wrote:

Done

https://github.com/llvm/llvm-project/pull/98788
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to