https://github.com/kazutakahirata created 
https://github.com/llvm/llvm-project/pull/229325

PointerUnion::dyn_cast has been soft-deprecated in favor of
llvm::dyn_cast and llvm::dyn_cast_if_present.  This patch replaces the
former with llvm::dyn_cast where the operand is guaranteed to be
nonnull.

Note that {Class,Var}TemplateSpecializationDecl::SpecializedTemplate is
always initialized to a nonnull pointer.

Assisted-by: Antigravity


>From 792687c0a01347aec6b70aaa3e90977880a45f46 Mon Sep 17 00:00:00 2001
From: Kazu Hirata <[email protected]>
Date: Mon, 5 Oct 2026 10:41:41 -0700
Subject: [PATCH] [clang] Replace PointerUnion::dyn_cast with llvm::dyn_cast
 (NFC)

PointerUnion::dyn_cast has been soft-deprecated in favor of
llvm::dyn_cast and llvm::dyn_cast_if_present.  This patch replaces the
former with llvm::dyn_cast where the operand is guaranteed to be
nonnull.

Note that {Class,Var}TemplateSpecializationDecl::SpecializedTemplate is
always initialized to a nonnull pointer.

Assisted-by: Antigravity
---
 clang/include/clang/AST/DeclTemplate.h | 8 ++++----
 clang/lib/AST/DeclTemplate.cpp         | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/clang/include/clang/AST/DeclTemplate.h 
b/clang/include/clang/AST/DeclTemplate.h
index d32b044ef40e2..575ca86155742 100644
--- a/clang/include/clang/AST/DeclTemplate.h
+++ b/clang/include/clang/AST/DeclTemplate.h
@@ -1993,7 +1993,7 @@ class ClassTemplateSpecializationDecl : public 
CXXRecordDecl,
                      ClassTemplatePartialSpecializationDecl *>
   getSpecializedTemplateOrPartial() const {
     if (const auto *PartialSpec =
-            SpecializedTemplate.dyn_cast<SpecializedPartialSpecialization *>())
+            dyn_cast<SpecializedPartialSpecialization *>(SpecializedTemplate))
       return PartialSpec->PartialSpecialization;
 
     return cast<ClassTemplateDecl *>(SpecializedTemplate);
@@ -2012,7 +2012,7 @@ class ClassTemplateSpecializationDecl : public 
CXXRecordDecl,
   /// itself.
   const TemplateArgumentList &getTemplateInstantiationArgs() const {
     if (const auto *PartialSpec =
-            SpecializedTemplate.dyn_cast<SpecializedPartialSpecialization *>())
+            dyn_cast<SpecializedPartialSpecialization *>(SpecializedTemplate))
       return *PartialSpec->TemplateArgs;
 
     return getTemplateArgs();
@@ -2766,7 +2766,7 @@ class VarTemplateSpecializationDecl : public VarDecl,
   llvm::PointerUnion<VarTemplateDecl *, VarTemplatePartialSpecializationDecl *>
   getSpecializedTemplateOrPartial() const {
     if (const auto *PartialSpec =
-            SpecializedTemplate.dyn_cast<SpecializedPartialSpecialization *>())
+            dyn_cast<SpecializedPartialSpecialization *>(SpecializedTemplate))
       return PartialSpec->PartialSpecialization;
 
     return cast<VarTemplateDecl *>(SpecializedTemplate);
@@ -2785,7 +2785,7 @@ class VarTemplateSpecializationDecl : public VarDecl,
   /// specialization itself.
   const TemplateArgumentList &getTemplateInstantiationArgs() const {
     if (const auto *PartialSpec =
-            SpecializedTemplate.dyn_cast<SpecializedPartialSpecialization *>())
+            dyn_cast<SpecializedPartialSpecialization *>(SpecializedTemplate))
       return *PartialSpec->TemplateArgs;
 
     return getTemplateArgs();
diff --git a/clang/lib/AST/DeclTemplate.cpp b/clang/lib/AST/DeclTemplate.cpp
index 00712c46b2a94..abcd035740916 100644
--- a/clang/lib/AST/DeclTemplate.cpp
+++ b/clang/lib/AST/DeclTemplate.cpp
@@ -1023,7 +1023,7 @@ void 
ClassTemplateSpecializationDecl::getNameForDiagnostic(
 ClassTemplateDecl *
 ClassTemplateSpecializationDecl::getSpecializedTemplate() const {
   if (const auto *PartialSpec =
-          SpecializedTemplate.dyn_cast<SpecializedPartialSpecialization*>())
+          dyn_cast<SpecializedPartialSpecialization *>(SpecializedTemplate))
     return PartialSpec->PartialSpecialization->getSpecializedTemplate();
   return cast<ClassTemplateDecl *>(SpecializedTemplate);
 }
@@ -1487,7 +1487,7 @@ void VarTemplateSpecializationDecl::getNameForDiagnostic(
 
 VarTemplateDecl *VarTemplateSpecializationDecl::getSpecializedTemplate() const 
{
   if (const auto *PartialSpec =
-          SpecializedTemplate.dyn_cast<SpecializedPartialSpecialization *>())
+          dyn_cast<SpecializedPartialSpecialization *>(SpecializedTemplate))
     return PartialSpec->PartialSpecialization->getSpecializedTemplate();
   return cast<VarTemplateDecl *>(SpecializedTemplate);
 }

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

Reply via email to