[clang] [Serialization] Delete an unreachable BlockDecl check (NFC) (PR #206298)
Ivo Popov via cfe-commits
cfe-commits at lists.llvm.org
Sat Jun 27 18:42:00 PDT 2026
https://github.com/ipopov created https://github.com/llvm/llvm-project/pull/206298
`needsAnonymousDeclarationNumber()` takes a `const NamedDecl *`. Both `BlockDecl` and `NamedDecl` derive from `Decl`, in other words they're siblings.
* https://clang.llvm.org/doxygen/classclang_1_1BlockDecl.html
* https://clang.llvm.org/doxygen/classclang_1_1NamedDecl.html
Thus `isa<BlockDecl>(D)` is statically false.
>From 8810a232daf9776943937e1a0b1835339be31441 Mon Sep 17 00:00:00 2001
From: Ivo Popov <popov.ivo at gmail.com>
Date: Sat, 27 Jun 2026 19:49:46 -0400
Subject: [PATCH] [Serialization] Delete an unreachable BlockDecl check (NFC)
`needsAnonymousDeclarationNumber()` takes a `const NamedDecl *`. Both
`BlockDecl` and `NamedDecl` derive from `Decl`, in other words they're
siblings.
* https://clang.llvm.org/doxygen/classclang_1_1BlockDecl.html
* https://clang.llvm.org/doxygen/classclang_1_1NamedDecl.html
Thus `isa<BlockDecl>(D)` is statically false. No functional change.
---
clang/lib/Serialization/ASTCommon.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clang/lib/Serialization/ASTCommon.cpp b/clang/lib/Serialization/ASTCommon.cpp
index 49e6fe8004cec..cedba86e3267d 100644
--- a/clang/lib/Serialization/ASTCommon.cpp
+++ b/clang/lib/Serialization/ASTCommon.cpp
@@ -499,7 +499,7 @@ bool serialization::needsAnonymousDeclarationNumber(const NamedDecl *D) {
if (auto *VD = dyn_cast<VarDecl>(D))
return VD->isStaticLocal();
// FIXME: What about CapturedDecls (and declarations nested within them)?
- return isa<TagDecl, BlockDecl>(D);
+ return isa<TagDecl>(D);
}
// Otherwise, we only care about anonymous class members / block-scope decls.
More information about the cfe-commits
mailing list