https://github.com/Lambo-IITian updated 
https://github.com/llvm/llvm-project/pull/180175

>From 31e6ffdd6275caacb8c03a890c607377c5b66dbe Mon Sep 17 00:00:00 2001
From: Mohit Gunani <[email protected]>
Date: Fri, 6 Feb 2026 17:10:56 +0530
Subject: [PATCH 1/3] [Clang] Improve template diffing to show qualifiers in
 elided types

This change ensures that template diagnostics like Dual<int, [...]> vs 
Dual<const int, [...]> correctly display the differing qualifiers instead of 
hiding the entire type.
---
 clang/lib/AST/ASTDiagnostic.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/clang/lib/AST/ASTDiagnostic.cpp b/clang/lib/AST/ASTDiagnostic.cpp
index b8023cb6fa10f..44983edbf870a 100644
--- a/clang/lib/AST/ASTDiagnostic.cpp
+++ b/clang/lib/AST/ASTDiagnostic.cpp
@@ -1205,8 +1205,16 @@ class TemplateDiff {
              "Both template specializations need to be valid.");
       Qualifiers FromQual = FromType.getQualifiers(),
                  ToQual = ToType.getQualifiers();
-      FromQual -= QualType(FromArgTST, 0).getQualifiers();
-      ToQual -= QualType(ToArgTST, 0).getQualifiers();
+      // FromQual -= QualType(FromArgTST, 0).getQualifiers();
+      // ToQual -= QualType(ToArgTST, 0).getQualifiers();
+      // ... your commented out lines ...
+      bool Same = false;
+      if (FromArgTST->getTemplateName().getAsTemplateDecl() == 
+          ToArgTST->getTemplateName().getAsTemplateDecl()) {
+        // If the names match, the ONLY thing that makes them different is the 
Qualifiers
+        Same = (FromQual == ToQual); 
+      }
+      Tree.SetSame(Same);
       Tree.SetTemplateDiff(FromArgTST->getTemplateName().getAsTemplateDecl(),
                            ToArgTST->getTemplateName().getAsTemplateDecl(),
                            FromQual, ToQual, FromDefault, ToDefault);

>From 8d3fc9c6664480844a46ddd5cf4658add10ee7b9 Mon Sep 17 00:00:00 2001
From: lambo <[email protected]>
Date: Fri, 6 Feb 2026 17:28:26 +0530
Subject: [PATCH 2/3] Clean up commented code in ASTDiagnostic.cpp

Removed commented out lines in ASTDiagnostic.cpp.
---
 clang/lib/AST/ASTDiagnostic.cpp | 1 -
 1 file changed, 1 deletion(-)

diff --git a/clang/lib/AST/ASTDiagnostic.cpp b/clang/lib/AST/ASTDiagnostic.cpp
index 44983edbf870a..7c498bc9b8e8a 100644
--- a/clang/lib/AST/ASTDiagnostic.cpp
+++ b/clang/lib/AST/ASTDiagnostic.cpp
@@ -1207,7 +1207,6 @@ class TemplateDiff {
                  ToQual = ToType.getQualifiers();
       // FromQual -= QualType(FromArgTST, 0).getQualifiers();
       // ToQual -= QualType(ToArgTST, 0).getQualifiers();
-      // ... your commented out lines ...
       bool Same = false;
       if (FromArgTST->getTemplateName().getAsTemplateDecl() == 
           ToArgTST->getTemplateName().getAsTemplateDecl()) {

>From e05df0304fbcc827d705b7b0405392cc388fe1a4 Mon Sep 17 00:00:00 2001
From: lambo <[email protected]>
Date: Sat, 7 Feb 2026 13:34:38 +0530
Subject: [PATCH 3/3] Apply suggestion from @cor3ntin

Removed the comment out code lines

Co-authored-by: Corentin Jabot <[email protected]>
---
 clang/lib/AST/ASTDiagnostic.cpp | 2 --
 1 file changed, 2 deletions(-)

diff --git a/clang/lib/AST/ASTDiagnostic.cpp b/clang/lib/AST/ASTDiagnostic.cpp
index 7c498bc9b8e8a..25d6a0c9c0f43 100644
--- a/clang/lib/AST/ASTDiagnostic.cpp
+++ b/clang/lib/AST/ASTDiagnostic.cpp
@@ -1205,8 +1205,6 @@ class TemplateDiff {
              "Both template specializations need to be valid.");
       Qualifiers FromQual = FromType.getQualifiers(),
                  ToQual = ToType.getQualifiers();
-      // FromQual -= QualType(FromArgTST, 0).getQualifiers();
-      // ToQual -= QualType(ToArgTST, 0).getQualifiers();
       bool Same = false;
       if (FromArgTST->getTemplateName().getAsTemplateDecl() == 
           ToArgTST->getTemplateName().getAsTemplateDecl()) {

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to