https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/225319
Note that PointerUnion::dyn_cast has been soft deprecated in PointerUnion.h: // FIXME: Replace the uses of is(), get() and dyn_cast() with // isa<T>, cast<T> and the llvm::dyn_cast<T> We must use dyn_cast_if_present here because the operands can be null, which I have verified with assert(!isNull()) on check-clang. Assisted-by: Antigravity >From 1b536d9b7b3821a9c767ad566e3cff5e9685ea22 Mon Sep 17 00:00:00 2001 From: Kazu Hirata <[email protected]> Date: Mon, 21 Sep 2026 13:17:23 -0700 Subject: [PATCH] [clang] Migrate away from PointerUnion::dyn_cast (NFC) Note that PointerUnion::dyn_cast has been soft deprecated in PointerUnion.h: // FIXME: Replace the uses of is(), get() and dyn_cast() with // isa<T>, cast<T> and the llvm::dyn_cast<T> We must use dyn_cast_if_present here because the operands can be null, which I have verified with assert(!isNull()) on check-clang. Assisted-by: Antigravity --- clang/include/clang/AST/DeclFriend.h | 2 +- clang/lib/Sema/SemaConcept.cpp | 2 +- clang/lib/Sema/SemaOverload.cpp | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/clang/include/clang/AST/DeclFriend.h b/clang/include/clang/AST/DeclFriend.h index 6d2659337a9c8..607930a35b32b 100644 --- a/clang/include/clang/AST/DeclFriend.h +++ b/clang/include/clang/AST/DeclFriend.h @@ -94,7 +94,7 @@ class FriendDecl : public Decl { /// is used for elaborated-type-specifiers and, in C++0x, for /// arbitrary friend type declarations. TypeSourceInfo *getFriendType() const { - return Friend.dyn_cast<TypeSourceInfo*>(); + return dyn_cast_if_present<TypeSourceInfo *>(Friend); } /// If this friend declaration doesn't name a type, return the inner diff --git a/clang/lib/Sema/SemaConcept.cpp b/clang/lib/Sema/SemaConcept.cpp index 611d8b0545011..27c61586020ba 100644 --- a/clang/lib/Sema/SemaConcept.cpp +++ b/clang/lib/Sema/SemaConcept.cpp @@ -1295,7 +1295,7 @@ bool Sema::CheckConstraintSatisfaction( OutSatisfaction.IsSatisfied = true; return false; } - const auto *Template = Entity.dyn_cast<const NamedDecl *>(); + const auto *Template = dyn_cast_if_present<const NamedDecl *>(Entity); if (!Template) { return ::CheckConstraintSatisfaction( *this, nullptr, AssociatedConstraints, TemplateArgsLists, diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index e12b727274408..ac78183564d47 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -12448,9 +12448,9 @@ static void DiagnoseBadDeduction(Sema &S, NamedDecl *Found, Decl *Templated, TemplateSpecCandidateSetKind::Normal) { TemplateParameter Param = DeductionFailure.getTemplateParameter(); NamedDecl *ParamD; - (ParamD = Param.dyn_cast<TemplateTypeParmDecl*>()) || - (ParamD = Param.dyn_cast<NonTypeTemplateParmDecl*>()) || - (ParamD = Param.dyn_cast<TemplateTemplateParmDecl*>()); + (ParamD = dyn_cast_if_present<TemplateTypeParmDecl *>(Param)) || + (ParamD = dyn_cast_if_present<NonTypeTemplateParmDecl *>(Param)) || + (ParamD = dyn_cast_if_present<TemplateTemplateParmDecl *>(Param)); switch (DeductionFailure.getResult()) { case TemplateDeductionResult::Success: llvm_unreachable( _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
