[clang] [Clang] Fix missing vtable for `dynamic_cast<FinalClass *>(this)` in a function template (PR #202594)
Corentin Jabot via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 22 05:01:49 PDT 2026
================
@@ -1652,6 +1652,17 @@ namespace {
SmallVectorImpl<QualType> &PTypes,
SmallVectorImpl<ParmVarDecl *> &TransParams,
Sema::ExtParameterInfoBuilder &PInfos);
+
+ ExprResult TransformCXXDynamicCastExpr(CXXDynamicCastExpr *E) {
+ ExprResult Ret = inherited::TransformCXXDynamicCastExpr(E);
+ if (Ret.isInvalid())
+ return Ret;
+ if (auto *DestDecl = Ret.get()->getType()->getPointeeCXXRecordDecl()) {
+ if (DestDecl->isEffectivelyFinal())
----------------
cor3ntin wrote:
```suggestion
if (auto *DestDecl = Ret.get()->getType()->getPointeeCXXRecordDecl(); DestDecl && DestDecl->isEffectivelyFinal())
```
https://github.com/llvm/llvm-project/pull/202594
More information about the cfe-commits
mailing list