[clang] [clang-tools-extra] [Clang][C++29] Template pack indexing (PR #218738)

Corentin Jabot via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 26 04:53:58 PDT 2026


================
@@ -3144,15 +3142,16 @@ InventTemplateParameter(TypeProcessingState &state, QualType T,
         }
       }
       if (!Invalid) {
-        UsingShadowDecl *USD =
-            TemplateId->Template.get().getAsUsingShadowDecl();
-        TemplateDecl *CD = TemplateId->Template.get().getAsTemplateDecl();
+        TemplateName TN = TemplateId->Template.get();
+        UsingShadowDecl *USD = TN.getAsUsingShadowDecl();
+        TemplateDecl *CD = TN.getAsTemplateDecl();
         S.AttachTypeConstraint(
             D.getDeclSpec().getTypeSpecScope().getWithLocInContext(S.Context),
             DeclarationNameInfo(DeclarationName(TemplateId->Name),
                                 TemplateId->TemplateNameLoc),
-            CD,
-            /*FoundDecl=*/USD ? cast<NamedDecl>(USD) : CD,
+            TN,
+            /*FoundDecl=*/
+            USD ? cast<NamedDecl>(USD) : cast_if_present<NamedDecl>(CD),
----------------
cor3ntin wrote:

No, in the template parameter/pack indexing case, it _is_ null

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


More information about the cfe-commits mailing list